Django CSRF代币赢得';不显示
以下是模板中的相关HTML片段:Django CSRF代币赢得';不显示,django,django-templates,django-csrf,Django,Django Templates,Django Csrf,以下是模板中的相关HTML片段: <form action="/submit_text/" method="post"> {% csrf_token %} {% include "backbone/form_errors.html" %} {{form.as_p}} <input type="submit" value="Submit" /> </form> CSRF令牌根本不显示,导致 禁止(403)CSRF
<form action="/submit_text/" method="post">
{% csrf_token %}
{% include "backbone/form_errors.html" %}
{{form.as_p}}
<input type="submit" value="Submit" />
</form>
CSRF令牌根本不显示,导致
禁止(403)CSRF验证失败。请求被中止
您需要在
render\u to\u响应中传递RequestContext
,上下文处理器才能实际运行
from django.template import RequestContext
context = {}
return render_to_response('my_template.html',
context,
context_instance=RequestContext(request))
新的快捷方式(django 1.3+)将为您提供:
from django.shortcuts import render
context = {}
return render(request, 'my_template.html', context)
虽然有一个经过检查的答案,但我想指出,编写context\u实例….
真的很烦人。我发现这很有用…尤其是对于表单
context.update(csrf(request))
非常有帮助!我有一个自定义模板标记,所以我必须指定@register.simple_标记(takes_context=True)
,然后将render_返回到字符串('template.html',{},context_instance=context)
。
context.update(csrf(request))