Найти - Пользователи
Полная версия: Django 1.2.1 CSRF error
Начало » Django » Django 1.2.1 CSRF error
1
dissdoc
Всем привет. В дебагсервере постоянно вылезает ошибка
CSRF token missing or incorrect.
Когда отправляю данные из формы

Собственно перечитал документацию. Что сделано, для устранения ошибки (все по мануалам)
в settings.py 'django.middleware.csrf.CsrfViewMiddleware' - есть
в views.py
from django.views.decorators.csrf import csrf_protect
#.....
@csrf_protect
def my_function_render_form(request):
#....
И все равно вылезает ошибка :( Что можно еще сделать?
vaxXxa
в форму надо вставить тег, например так:
<form action="" method="post">{% csrf_token %}
dissdoc
Ой, забыл! Упомянуть!
Тоже такое вставил! И не помогло :(
vaxXxa
Add the middleware ‘django.middleware.csrf.CsrfViewMiddleware’. ……..
Alternatively, you can use the decorator django.views.decorators.csrf.csrf_protect on particular views you want to protect (see below).

Убери декоратор @csrf_protect. Может поможет.
dissdoc
Неа, не помогло.
Может что-то упускаю из виду.. У меня однажды такая ситуация была ) Но я как-то ее быстро решил… Сейчас уже 4 часа прошло, я все не разберусь…
dissdoc
Все! нашел в хелпе (блин, запихнули в самые дебри)
В settings.py неоходимо добавить
'django.middleware.csrf.CsrfResponseMiddleware',
В раздел MIDDLEWARE конечно =)

После этого вообще больше ничего не нужно - ни декоратора @csrf_protect, ни блока {% csrf_token %}
vaxXxa
Ты же писал, что
“в settings.py ‘django.middleware.csrf.CsrfViewMiddleware’ - есть”… хех)
Ну, ок. Главное, что разобрался)
vaxXxa
Use of the CsrfResponseMiddleware is not recommended because of the performance hit it imposes, and because of a potential security problem (see below). It can be used as an interim measure until applications have been updated to use the csrf_token tag. It is deprecated and will be removed in Django 1.4.
dissdoc
Да-да…
Но почему-то этот способ сработал, а предыдущий нет… Наверняка я виноват, но ошибку найти у себя не могу.
Sashker
В settings.py ‘django.middleware.csrf.CsrfViewMiddleware’ надо закомментировать, а в шаблоне в форме поставить {% csrf_token %}.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB