我知道这个问题已经发布了很多,但我一直在尝试所有建议的解决方案,直到现在都没有。
的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})
答案 0 :(得分:0)
将提交按钮的名称更改为csrfmiddlewaretoken以外的名称。它与实际包含令牌的隐藏字段发生冲突并导致错误。