Есть некий АПИ-запрос, на который делает запрос некий сторонний сайт с некими параметрами, и после этого мне нужно сделать редирект на определенную страницу своего сайта.
from rest_framework.generics import GenericAPIView
from serializers import AddSomethingSerializer
class AddingSomething(GenericAPIView):
permission_classes = (permissions.AllowAny, )
serializer_class = AddSomethingSerializer
queryset = None
def post(self, request, **kwargs):
# .. Some magic ..
return HttpResponseRedirect(redirect_to=reverse('something_added'))
Все хорошо, но при редиректе со стороннего сайта возникает исключение:
"detail": "CSRF Failed: CSRF token missing or incorrect."
Как мне отключить проверку CSRF только для данного АПИ, а для других АПИ оставить в силе?
Пробовал
@method_decorator(csrf_exempt)
def post(self, request, **kwargs)
- не помогло
@method_decorator(csrf_exempt, name='dispatch')
class AddingSomething(GenericAPIView):
- не помогло
from django.views.decorators.csrf import csrf_exempt
from views import AddingSomething
urlpatterns = [
url('^add_something/$', csrf_exempt(AddingSomething.as_view()), name='api-add-something'),
...
- не помогло
Вариант отключить полностью в authentication_classes - не подходит