Создание пользовательского разрешения Django Rest Framework

#python #django #django-rest-framework #django-permissions

#python #django #django-rest-framework #django-разрешения

Вопрос:

Я создал пользовательское разрешение django rest, и в целях тестирования я убедился has_object_permission и has_permission повторил False .

 from rest_framework import permissions


class IsWorker(permissions.BasePermission):
    message = "Login with Supplier Account"
    
    def has_object_permission(self, request, view, obj):
        return False
        
    def has_permission(self, request, view):
        return False
        
 

Почему это представление работает не так, как ожидалось?

 from packages.models import Package
from .serializers import WorkerPackageSerializer
from rest_framework.permissions import IsAuthenticated
from api.permissions import IsWorker

class WorkerPackageDetailViewSet(generics.RetrieveUpdateDestroyAPIView):

    serializer_class = WorkerPackageSerializer
    permission_classes = (IsAuthenticated, IsWorker)
    lookup_field = "id"

    def get_queryset(self):
        return Package.objects.all()
 

Ожидания:
Я думал, что он вернет forbidden ошибку с сообщением Login with Supplier Account , но если пользователь не аутентифицирован, он возвращает ошибку, не прошедшую проверку подлинности, и если пользователь аутентифицирован, он возвращает данные без каких-либо ошибок.

Комментарии:

1. Я понял, что проблема связана с моими URL-адресами. в противном случае все работает нормально. Я вызвал неправильные представления в своих маршрутах