Есть много способов сделать это. Но имейте в виду, что вы не можете отключить CSRF на глобальном уровне, если не
нравится создавать свое собственное промежуточное программное обеспечение.
см. документацию
1.) С использованием метода csrf_exempt
Если вы хотите, чтобы некоторые представления не использовали CSRF, вы можете использовать @ csrf_exempt .
Добавьте @ csrf_exempt к каждому представлению, которое вы хотите отключить
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
return 'CSRF is disabled for this view'
2.) Использование настроек setting.py
В setting.py в MIDDLEWARE вы можете просто удалить / прокомментировать эту строку кода:
'django.middleware.csrf.CsrfViewMiddleware',
Просто помните, что SessionAuthentication выполняет свою собственную проверку CSRF. и это приведет к ошибке CSRF отсутствует
если закомментировано при использовании sessionAuthentication ..
3.) Creating your own Custom Middleware
Чтобы отключить CSRF в Global, вы можете написать собственное промежуточное программное обеспечение, например,
from django.utils.deprecation import MiddlewareMixin
class DisableCsrfCheck(MiddlewareMixin):
def process_request(self, req):
attr = '_dont_enforce_csrf_checks'
if not getattr(req, attr, False):
setattr(req, attr, True)
затем добавьте этот класс
yourApp_name.middlewarefilename.DisableCsrfCheck
до
MIDDLEWARE_CLASSES lists
до
django.middleware.csrf.CsrfViewMiddleware