Найти - Пользователи
Полная версия: CSRF verification
Начало » Django » CSRF verification
1
gibson191
Ета тема уже поднималась тут, но вынужден поднять ее еще раз, так как не могу понять где натупил.

Код функции:
from django.shortcuts import render_to_response
from django.template import RequestContext

def testform(request):
return render_to_response('test.html',{'name':request.POST['login'],'pass':request.POST['password']},context_instance=RequestContext(request))
Код шаблона с формой:
<form action="/test" method="post">{% csrf_token %}
{{form.login}}<br/>
{{form.password}}<br/>
<input type="submit" value="submit">
</form>
В Middleware добавлен django.middleware.csrf.CsrfViewMiddleware он по умолчанию уже есть.
При отправке формы выводит :
CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.
tmt
Не знаю какая у вас версия django, но, если до версии 1.2
попробуйте добавить django.middleware.csrf.CsrfResponseMiddleware в список мидлваре

И почитайте здесь: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#
gibson191
Django Версии 1.2 но ваш совет помог, после добавления ‘django.middleware.csrf.CsrfResponseMiddleware’ все работает ! Спаисбо.
tmt
Хорошо что работает, но это устаревший метод.

“…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…”

Рекомендую пересмотреть линк http://docs.djangoproject.com/en/dev/ref/contrib/csrf/# и переделать как надо. =)
gibson191
Так в том и дело, что все по докам, код я привел, форму все равно не отправляло. Доделаю сайт, потом поправлю такие моменты.
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