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

django.middleware.csrf.CsrfResponseMiddlewareしたがって、後django.middleware.csrf.CsrfViewMiddlewareに andを追加すると、準備完了django.middleware.common.CommonMiddlewareです。

于 2010-02-23T16:11:12.340 に答える