Django:CSRF令牌丢失或不正确。 /避免{%csrf
我正在关注Django指南,让我看看。 但我有一个问题:
如果我只是复制他的代码我创建一个
禁止(403)CSRF验证失败。 请求中止。
我已经通过向所有“我的”返回render_to_response添加context_instance = RequestContext(request)并向我调用的窗体添加{%csrf_token%}来解决该问题。
问题来了:我能以任何方式将它设置为“在sceenes后面”或我必须将其添加到所有表单中!
延
是的,您可以使用render(request, template, context)
而不是render_to_response
。 render
快捷方式自动使用RequestContext。
CSRF是一个重要的安全概念AFAIK。
您必须将csrf_token
[将设置一个隐藏的帖子参数]设置为使用发布,放入或删除请求的所有表单,或者也可以使用X-CSRFToken
标头。 您可以使用render
快捷键而不是render_to_response
来默认包含RequestContext
。 看到:
https://docs.djangoproject.com/en/dev/ref/contrib/csrf/
有一种方法可以通过删除middleware
或使用decorator
来完全避免CSRF检查。 但我会建议不要这样。
上一篇: Django: CSRF token missing or incorrect. / avoid {% csrf