CSRF验证失败。请求已中止,CSRF令牌丢失或不正确

时间:2016-03-26 15:57:42

标签: django-forms

我知道这个问题已经发布了很多,但我一直在尝试所有建议的解决方案,直到现在都没有。

的login.html:

{% extends "base.html" %}

{% block title %}Connexion{% endblock %}

{% block bodyId %}loginPage{% endblock %}

{% block content %}
<form action="login" method="post">
{% csrf_token %}
{{ form.as_p }}
<p>
<input type ="submit" name='csrfmiddlewaretoken' value="Se connecter" />
<a href="/register"> Créer un compte</a>
</p>
</form>
{% endblock %}

这是我的 view.py 部分:

def login(request):
if request.method=="POST":
    form = LoginForm(request.POST)
    if form.is_valid():
        user_email = form.cleaned_data['email']
        logged_user = Personne.objects.get(courriel=user_email)
        request.session['logged_user_id'] = logged_user.id
        return HttpResponseRedirect('/welcome')
else: 
    form = LoginForm()
    return render_to_response('login.html', {'form':form})

1 个答案:

答案 0 :(得分:0)

将提交按钮的名称更改为csrfmiddlewaretoken以外的名称。它与实际包含令牌的隐藏字段发生冲突并导致错误。