簡體   English   中英

模板中有 {% csrf_token %} 標簽,但沒有 csrfmiddlewaretoken 隱藏值

[英]Have {% csrf_token %} tag in template but no csrfmiddlewaretoken hidden value

我在 Django 中使用 django.contrib.comments,版本是 1.6.1 然后我有一個這樣的表格,

{% get_comment_form for mbean as form %}
<table>
  <form action="{% comment_form_target %}" method="post" class="aaa">{% csrf_token %}
    {{ form }}
    <tr>
      <td colspan="2">
        <input type="submit" name="submit" value="Post">
        <input type="submit" name="preview" value="Preview">
      </td>
    </tr>
  </form>
</table>

但是當我在 HTML 中檢查我的頁面源時,我在我的源中找不到<input type='hidden' name='csrfmiddlewaretoken' value='uiwp7YkGi374HwnZqMRbCUmzyH38jDPI' /> ,並且有

CSRF 驗證失敗。 請求中止

錯誤。

我還在這個模板的其他形式中使用了{% csrf_token %}但仍然沒有“csrfmiddlewaretoken”。

  1. 沒有“csrfmiddlewaretoken”是我出現“CSRF 驗證失敗。請求中止”錯誤的原因嗎?

  2. 任何人都可以就我的模板有什么問題提供幫助嗎?

要在模板中使用 {% csrf_token %},您需要在渲染模板時將 RequestContext 實例傳遞給模板,然后就可以了。 然后您可以使用 csrf_token 並且它也將在源代碼中可見。

渲染模板時發送上下文實例的示例代碼片段:

from django.template import RequestContext

def home(request):
    return render_to_response('index.html', context_instance=RequestContext(request))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM