как установить аутентификацию и разрешение только на PUT-запросы в django REST в viewsets? - PullRequest
0 голосов
/ 07 октября 2018

У меня есть viewset подкласс от modelviewset, я добавляю следующее:

authication_classes = [SessionAuthentication,BasicAuthentication]
permission_classes = [IsAuthenticated]

Затем получаю следующее сообщение, когда запросы list, detail / retrieve и put.

«деталь»: «Учетные данные для аутентификации не предоставлены».

Что я должен изменить, чтобы выдавать это сообщение только при обновлении данных ??

1 Ответ

0 голосов
/ 07 октября 2018

Переопределить метод get_permissions в классе ModelViewSet.

Пример :

class FooViewSet(ModelViewSet):
    authentication_classes = (SessionAuthentication, BasicAuthentication, )
    permission_classes = (IsAuthenticated, )

    def get_permissions(self):
        if self.request.method != 'PUT':
            return []
        return super().get_permissions()
...