У меня есть форма в моем HTML:CSRF токен просто стреляет случайно в Джанго
<form id="form" action="" method="post"> {% csrf_token %}
<div>{{form.input1}}</div>
<div>{{form.input2}}</div>
<div>{{form.input3}}</div>
<input type="submit" class="btn" name="submit" value="submit">
</form>
и в моем urls.py:
urlpatterns = [
url(r'^$', views.MyView.as_view(success_url='/'), name='index'),
]
и иногда, когда я ударил представить, маркер CSRF получает срабатывает и говорит, что токен csrf отсутствует или неверен.
Прежде всего, как это возможно? Док говорит:
Обычно следует рассматривать только тогда, когда есть подлинный запрос Cross Site подлог, или когда из-за ошибки программирования, маркер CSRF не был включен с формой POST.
Из того, что я вижу, оно выполнено правильно.
сообщение об ошибке далее говорит
- Ваш браузер принимает куки
это
- Функция просмотра передает запрос на шаблон визуализируем метод
Согласно doc У меня есть это.
- В шаблоне есть {% csrf_token%} Тег шаблона внутри каждой формы POST, который нацелен на внутренний URL-адрес
это действительно, но это все точки, имеющие Значок csrf правильно?
- Если вы не используете
CsrfViewMiddleware
, то вы должны использоватьcsrf_protect
на любые мнения, которые используютcsrf_token
тег шаблона, а также те, которые принимают данные POST.
В соответствии с документом это активируется по умолчанию.
Так почему же это срабатывает иногда (очень редко)?
Возможно, что-то происходит с элементами формы (входы вытираются?) – bozdoz
Вам нужно хотя бы показать пример вашей функции просмотра, передающей запрос. –