2011-05-25 54 views
1

我对Django有点新,我正尝试为我的网站用户创建一个登录表单。我正在使用Django的用户应用程序。我创建了一个简单的形式与用户名和密码字段如下:在Django中创建登录表单时遇到问题

<form id='login-form' action="login" method="post"> 
<div class='login-field'><input type='text' name='username' placeholder=' Username'></div> 
<div class='password-field'><input type='password' name='password' placeholder=' Password'spellcheck='false'></div> <br /> 
<input type='submit' value='SUBMIT' spellcheck='false'> 
</form> 

问题按下提交按钮时,我得到的是:

CSRF verification failed. Request aborted

我已经通过所有的解决方案看对本网站和其他人的类似问题仍然无法解决问题,有什么建议吗?

+0

只是想在这里重复@ JamesO的评论,以防万一被任何需要这个答案的人忽略。您必须使用RequestContext让'{%csrf_token%}'返回任何内容:'return render_to_response('login.html',context_instance = RequestContext(request))' – 2011-05-25 17:47:57

回答

4

您需要{% csrf_token %}模板中<form>标记内的某处。

查看Django docs on Cross-site request forgery了解更多信息。

+0

where?我已经试过把它放在开放表格标签之后...... – Nayish 2011-05-25 14:27:19

+0

这应该就是你需要的一切。确保重新启动服务器并刷新页面后再次尝试。 – majackson 2011-05-25 14:32:11

+0

这并不能解决问题... – Nayish 2011-05-25 14:38:17

1

看文档中的Cross Site Request Forgery protection

基本上你需要{% csrf_token %}后窗体标签。

+0

看到评论@Herald_MJ – Nayish 2011-05-25 14:38:33

+1

你有django.middleware.csrf.CsrfViewMiddleware在你settings.py吗? RequestContext是否与模板一起返回? egreturn render_to_response('login.html',context_instance = RequestContext(request)) – JamesO 2011-05-25 14:47:37

+1

增加了它...仍然是同样的问题 – Nayish 2011-05-25 15:04:00