Я пытался найти ответ на этот вопрос в документах по остальным фреймворкам или в стеке, но я не смог его найти.
Предположим, набор настроек остальной структуры:
class MyModelViewSet(ModelViewSet):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
@action(
detail=True,
permission_classes=[],
authentication_classes=[],
)
def extra_action(self, request, pk=None):
return Response()
в этом случае действие extra_action
не будет иметь ни прав доступа, ни классов аутентификации, либо они будут определены на уровне класса? что произойдет, если я переопределю метод get_permissions
?
class MyModelViewSet(ModelViewSet):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
def get_permissions(self):
permission_classes = self.permission_classes[:]
if self.action == 'extra_action':
permission_classes.append(MyPermissionClass)
return [permission() for permission in permission_classes]
@action(
detail=True,
permission_classes=[],
authentication_classes=[],
)
def extra_action(self, request, pk=None):
return Response()
Спасибо за вашу помощь!