【发布时间】:2013-07-27 11:40:10
【问题描述】:
我的模板如下:
<div id="divLogin">
{% block login %}
<form action="/login" method="post">
{% csrf_token %}
<label for="id_name"></label><input type="text" name="email" id="id_name" placeholder="Your Email">
<label for="id_pass"></label><input type="password" name="password" placeholder="Your Password">
<input type="submit" id="btnLogin" value="Log In" class="btn">
</form>
{% endblock %}
</div>
我已经在模板中添加了{% csrf_token %},我的登录视图是
def login_view(request):
if request.method == 'POST':
useremail=request.POST['email']
password=request.POST['password']
try:
user=User.objects.get(email=useremail)
if user.check_password(password):
uAuth=authenticate(username=user.username,password=password)
login(request,uAuth)
return render_to_response("blog.html",{'loginuser':user},context_instance=RequestContext(request))
except User.DoesNotExist:
return redirect('/')
return redirect('/')
即使我使用了render_to_response 和RequestContext,我仍然遇到错误。
有一件事很连贯,我在 login_view 方法中设置了一个断点,但是在它进入 login_view 方法之前 csrf 错误指出。所以这个方法没有回应?
我的代码有什么问题吗?
我在 settings.py 中的 MIDDLEWARE_CLASSES 中添加了 django.middleware.csrf.CsrfViewMiddleware。
【问题讨论】:
-
你能粘贴完整的
traceback吗? -
你没有处理
GET请求? -
@VictorCastilloTorres 我无法获得回溯,
CSRF verification failed在进入 Login_view 方法之前显示错误。 @Rohan,处理 GET 请求是什么意思? -
是丢失的token还是不正确的token?
标签: django django-forms django-csrf