#django #django-rest-framework #django-views #csrf #django-csrf
#django #django-rest-framework #django-views #csrf #django-csrf
Вопрос:
Когда я делаю запрос POST с помощью Postman, я получаю сообщение об ошибке Forbidden (CSRF cookie not set.)
class BooksView(View):
def post(self, request):
Если я использую csrf_exempt
, ошибка не возникает
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
@method_decorator(csrf_exempt, name='dispatch')
class BooksView(View):
def post(self, request):
Однако эта ошибка вообще не возникает, когда я использую django-rest-framework
from rest_framework.views import APIView
# /books
class BooksView(APIView):
def post(self, request):
Что делает django-rest-framework и APIView
класс по отношению к csrf
?
Ответ №1:
Все представления и наборы представлений в django-rest-framework наследуются от APIView
, этот класс обертывается csrf_exempt
в as_view
метод.