Ответы пользователя по тегу RESTful API
  • Отключить CSRF для одного POST-запроса?

    Drf при использовании SessionAuthentication принудительно делает проверку на наличие валидного CSRF токена для небезопасных методов запроса. Декораторы csrf_exempt работать не будут с SessionAuthentication.

    Вариант решения вам, в принципе, уже скидывали ссылками на SO.

    from rest_framework.authentication import SessionAuthentication
    
    
    class CsrfExemptSessionAuthentication(SessionAuthentication):
        def enforce_csrf(self, request):
            return None
    
    
    class AddingSomething(GenericAPIView):
        permission_classes = (permissions.AllowAny, )
        serializer_class = AddSomethingSerializer
        authentication_classes = (CsrfExemptSessionAuthentication,)
        queryset = None
    
        def post(self, request, **kwargs):
             # .. Some magic ..
             return HttpResponseRedirect(redirect_to=reverse('something_added'))
    Ответ написан
    1 комментарий