как установить аутентификацию и разрешение только для запросов PUT в django REST в наборах представлений?

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

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

Затем появилось следующее сообщение, когда список, детализация/извлечение и размещение запросов.

"detail": "Учетные данные для аутентификации не были предоставлены."

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


person Nitesh Rawat    schedule 07.10.2018    source источник
comment
Чтобы помочь вам решить вашу проблему, было бы полезно добавить класс набора представлений, а также запрос, который вы отправляете на эту конечную точку, чтобы увидеть, как вы на самом деле устанавливаете учетные данные для аутентификации.   -  person Enthusiast Martin    schedule 07.10.2018
comment
Вот ссылка на аналогичный вопрос, пожалуйста, перейдите по ссылке. stackoverflow.com/questions/37642175/   -  person ashutosh singh    schedule 01.11.2018
comment
stackoverflow.com/questions/37642175/ 1. Кто-то ответил на аналогичный вопрос.   -  person ashutosh singh    schedule 01.11.2018


Ответы (1)


Переопределить метод 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()
person Sachin    schedule 07.10.2018