[英]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”。
沒有“csrfmiddlewaretoken”是我出現“CSRF 驗證失敗。請求中止”錯誤的原因嗎?
任何人都可以就我的模板有什么問題提供幫助嗎?
要在模板中使用 {% 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.