Я новичок в DRF, и я столкнулся со следующей проблемой при попытке настроить Permission в DRF.Django Rest Framework permission_class
Предположим, я имел следующий код в моем permissions.py файле:
class GetPermission(BasePermission):
obj_attr = 'POITS'
def has_permission(self, request, view):
user = request.user
employee = Employee.objects.get(user=user)
# Return a dict which indicates whether the request user has the corresponding permissions
permissions = get_permission(employee.id)
return permissions[GetPermission.obj_attr]
И на мой взгляд, я хочу, чтобы переопределить статическую переменную в классе GetPermission:
class AssignmentList(generics.ListCreateAPIView):
GetPermission.obj_attr = 'ASSIGNMENT'
permission_classes = (IsAuthenticated, IsStaff, GetPermission)
queryset = Assignment.objects.all()
serializer_class = AssignmentSerializer
pagination_class = LargeResultsSetPagination
def perform_create(self, serializer):
employee = Employee.objects.get(user=self.request.user)
serializer.save(sender=employee, status=0, operatable=0)
Однако, как указано в документации DRF:
Проверка разрешений всегда выполняется в самом начале представления, r код разрешен.
Так как я должен делать, заранее спасибо, любые идеи будут приветствоваться, так как я новая рыба для DRF.
Я не понимаю ваш вопрос. Как этот класс разрешений несовместим с запуском в начале представления? –
Для разных видов я хочу использовать класс GetPermission с другим значением obj_attr. – shady