Django {% csrf_token%} или @csrf_protect - PullRequest
2 голосов
/ 13 ноября 2011

Мне любопытно: я знаю, что в Django есть 2 способа защиты csrf: {% csrf_token %} в шаблонах и @csrf_protect в представлениях.

Итак, вопрос в том, являются ли они взаимозаменяемыми? Я имею в виду, что я могу использовать, например, только @csrf_protect, если мои представления без тега {% csrf_token %} в моих шаблонах и эффект будут одинаковыми?

Я спрашиваю об этом, потому что я использую mako в недавнем проекте Django, и нет такого тега, как {% csrf_token %} ...

Спасибо !!!

1 Ответ

2 голосов
/ 13 ноября 2011

Вам нужны оба. {% csrf_token %} добавляет скрытые поля, включенные в POST запросы. В то время как @csrf_protect добавляет переменную контекста, которая используется {% csrf_token %}.

...