Django将CSRF令牌作为对象而不是值输出
我正在Django的一个简单POST表单中努力使用CSRF令牌。模板生成以下CSRF输出,而不是输出令牌的值:Django将CSRF令牌作为对象而不是值输出,django,django-forms,csrf,django-csrf,Django,Django Forms,Csrf,Django Csrf,我正在Django的一个简单POST表单中努力使用CSRF令牌。模板生成以下CSRF输出,而不是输出令牌的值: <input type='hidden' name='csrfmiddlewaretoken' value='{'csrf_token':django.utils.functional.__proxy__ object at 0x1255690>}' /> 我找到了原因:在settings.py中,我添加了:django.middleware.csrf.CsrfVi
<input type='hidden' name='csrfmiddlewaretoken' value='{'csrf_token':django.utils.functional.__proxy__ object at 0x1255690>}' />
我找到了原因:在settings.py中,我添加了:
django.middleware.csrf.CsrfViewMiddleware
但不是:django.middleware.csrf.CsrfResponseMiddleware
因此,在
django.middleware.csrf.CsrfResponseMiddleware
和django.middleware.common.CommonMiddleware
之后添加django.middleware.csrf.CsrfResponseMiddleware
我找到了原因:在settings.py中,我添加了:django.middleware.csrf.CsrfViewMiddleware
但不是:django.middleware.csrf.CsrfResponseMiddleware
因此,在
django.middleware.csrf.CsrfResponseMiddleware
和django.middleware.common.CommonMiddleware
之后添加django.middleware.csrf.CsrfResponseMiddleware
请显示准确的模板片段。嗨,丹尼尔,我已经添加了表单,希望这有帮助。当我做{crsf_token.csrf_token}时,实际的token会显示出来,但是没有整个隐藏的输入字段。请显示准确的模板片段。嗨,Daniel,我已经添加了表单,希望这有帮助。当我执行{crsf_token.csrf_token}时,将显示实际的标记,但是不显示整个隐藏的输入字段。
<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>