Javascript Django CSRF验证失败
我在Django中实现一个用于注销用户的按钮时遇到问题(我正在为一个现有的项目做贡献,不幸的是,该项目还没有使用现有的Django auth模型) 我有一个观点(已经存在): 和base.html中的一个按钮Javascript Django CSRF验证失败,javascript,python,django,Javascript,Python,Django,我在Django中实现一个用于注销用户的按钮时遇到问题(我正在为一个现有的项目做贡献,不幸的是,该项目还没有使用现有的Django auth模型) 我有一个观点(已经存在): 和base.html中的一个按钮 <form action = 'logout/' method = 'post'> {%csrf_token%} <input class ='formGo' type = 'submit' value='logout' style = 'float:none:'>
<form action = 'logout/' method = 'post'>
{%csrf_token%}
<input class ='formGo' type = 'submit' value='logout' style = 'float:none:'>
</form>
{%csrf_令牌%}
当我尝试使用按钮时,我被禁止:403。CSRF验证失败。请求被中止
想法?问题是,您必须在
注销
视图中使用RequestContext
而不是注销
视图中,而是在呈现base.html
模板的视图中使用
如果模板的上下文不包含csrf\u标记
,则{%csrf\u标记%}
模板标记不会执行任何操作,而不会呈现隐藏的csrf输入字段,如下所示:
<input type="hidden" value="4cEL0P1bToqoOhZL3CLRUFqxIWHWcnnf" name="csrfmiddlewaretoken">
您可以使用
RequestContext
或手动生成CSRF令牌并将其添加到模板的上下文中(如中所述)。行{%CSRF_令牌}
上是否缺少%
?另外,呈现到_响应
调用后出现语法错误。噢,谢谢,当我把问题放在堆栈溢出上时,这是一个复制/粘贴错误;它在我的代码中。我会修好的,谢谢!检查POST
通过浏览器的开发工具发送的数据,查看csrf_令牌是否真的随表单一起发送。
<input type="hidden" value="4cEL0P1bToqoOhZL3CLRUFqxIWHWcnnf" name="csrfmiddlewaretoken">