1

我在 Django 中以简单的 POST 形式处理 CSRF 令牌。该模板生成以下 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>
4

1 回答 1

1

我找到了原因:在 settings.py 我添加了:django.middleware.csrf.CsrfViewMiddleware 但不是:django.middleware.csrf.CsrfResponseMiddleware

所以在anddjango.middleware.csrf.CsrfResponseMiddleware之后添加,你就可以开始了。django.middleware.csrf.CsrfViewMiddlewaredjango.middleware.common.CommonMiddleware

于 2010-02-23T16:11:12.340 回答