代码之家  ›  专栏  ›  技术社区  ›  DrDee

Django将CSRF令牌作为对象而不是值输出

  •  1
  • DrDee  · 技术社区  · 16 年前

    我正在Django的一个简单POST表单中努力使用CSRF令牌。模板生成以下CSRF输出,而不是输出令牌的值:

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

    我正在使用 {% 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>
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   DrDee    16 年前

    django.middleware.csrf.CsrfViewMiddleware 但不是: django.middleware.csrf.CsrfResponseMiddleware .

    所以加上 django.middleware.csrf.CsrfResponseMiddleware 之后 django.middleware.common.CommonMiddleware

    推荐文章