Django выводит токен CSRF как объект вместо значения - PullRequest
1 голос
/ 23 февраля 2010

Я борюсь с токеном CSRF в простой форме POST в Django. Шаблон генерирует следующий вывод CSRF вместо вывода значения токена:

<input type='hidden' name='csrfmiddlewaretoken' value='{'csrf_token':django.utils.functional.__proxy__ object at 0x1255690>}' />

Я использую {% csrf_token %} в шаблоне, как я могу это исправить? (Я использую Django 1.2)

РЕДАКТИРОВАТЬ: точный код формы:

<form name="foo" action="url" method="POST">
   {% csrf_token %}

   <select>
       {% for key, account in accounts.items %} 
           <option value="{{ key }}">{{ account }}</option>
       {% endfor %}
   </select>
<input type="submit">    
</form>

1 Ответ

1 голос
/ 23 февраля 2010

Я нашел причину: в settings.py я добавил: django.middleware.csrf.CsrfViewMiddleware но не: django.middleware.csrf.CsrfResponseMiddleware.

Итак, добавьте django.middleware.csrf.CsrfResponseMiddleware после django.middleware.csrf.CsrfViewMiddleware и django.middleware.common.CommonMiddleware, и все готово.

...