Я создаю очень простой ViewSet на User
модели для CRUD пользователя.
- Я хочу использовать декораторы
ModelViewSet
и @action
, чтобы сделать коды чистыми. - Установите разрешение (просто используйте
IsAuthenticated
в качестве примера), необходимое для функции list
.так что только те, кто подписан, могут сделать это.
Это пример кода.
from rest_framework.decorators import action, list_route
from rest_framework.permissions import IsAuthenticated
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
@action(detail=False, permission_classes=[IsAuthenticated])
def list(self, request, *args, **kwargs):
return super(UserViewSet, self).list(request, *args, **kwargs)
Но я получил ошибку
Невозможно использовать декоратор @action в следующих методах, так какэто существующие маршруты: список
Если я удаляю @action
, это работает хорошо.У меня вопрос, почему я не могу использовать @action decorator на существующих маршрутах list
?