Из django doc :
Добавьте промежуточное программное обеспечение 'django.middleware.csrf.CsrfViewMiddleware' в список классов промежуточного программного обеспечения, MIDDLEWARE_CLASSES.(Он должен предшествовать CsrfResponseMiddleware, если он используется, и перед любым промежуточным программным обеспечением представления, которое предполагает, что атаки CSRF были обработаны.) Кроме того, вы можете использовать декоратор django.views.decorators.csrf.csrf_protect для определенных представлений, которые вы хотите использовать.protect (см. ниже).
В любом шаблоне, который использует форму POST, используйте тег csrf_token внутри элемента, если форма предназначена для внутреннего URL:
{% csrf_token%}
Этого не следует делать для форм POST, предназначенных для внешних URL-адресов, так как это может привести к утечке токена CSRF, что приведет к уязвимости.
В соответствующих функциях просмотра убедитесь, что используется процессор контекста 'django.core.context_processors.csrf'.Обычно это можно сделать одним из двух способов:
3.1 Использовать RequestContext, который всегда использует 'django.core.context_processors.csrf' (независимо от того, какой параметр TEMPLATE_CONTEXT_PROCESSORS).Если вы используете общие представления или приложения для вклада, вы уже охвачены, поскольку эти приложения повсеместно используют RequestContext.
3.2 Импортируйте вручную и используйте процессор для генерации токена CSRF и добавления его в контекст шаблона.