Почему `csrf_exempt` не нужен при использовании django-rest-framework?

Когда я делаю 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?

Все представления и наборы представлений в django-rest-framework наследуются от APIView, этот класс оборачивает себя csrf_exempt в as_view методе .

Вернуться на верх