Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2012 19:34:03

johniek_comp
Зарегистрирован: 2012-05-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF в django

Получаю 403-ю все равно, версия питона 2.6, джанго 1.4
вот так передаю в шаблон данные

def index(request):
    if 'q' in request.POST:
	q = request.POST['q']
	return render_to_response('index.html', q)
    else:
	return render_to_response('index.html', {'q': 'error'} )
а вот шаблон
{{ q }}
<form action="" method="POST" /> {% csrf_token %}
<input type="text" name="q" />
<input type="submit">
</form>

помогите пожалуйста

Офлайн

#2 Июнь 1, 2012 00:21:57

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

CSRF в django

Вы документацию читали? Ибо там явно все написано.

Во первых вы не указали подключены ли в settings.py нужные middleware и тд.
Во вторых У вас ошибка в функции представления. Я бы сделал так (набираю код без проверки):

def index(request):
q=request.POST.get('q', 'error')
args={'q': q}
args.update(csrf(request))
return render_to_response('index.html', args)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июнь 1, 2012 05:41:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

CSRF в django

return render_to_response('index.html', q)
render_to_response(template[, dictionary][, context_instance][, mimetype])
Раз нету словаря, получается, что q это context_instance, вот и ошибка, помести q в словарь



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version