我有一个常规的django登录页面,但出于某种原因,如果我输入错误的登录信息,它不显示错误消息,只是刷新页面。有什么想法吗?
的login.html
{% if form.errors %}
<p>Your username and password didn't match, please try again.</p>
{% endif %}
<form method="post" action=".">
<p>
<label for="id_username">Username:</label>
{{ form.username }}
</p>
<p>
<label for="id_password">Password:</label>
{{ form.password }}
</p>
{% if next %}
<input type="hidden" name="next" value="{{ next }}" />
{% else %}
<input type="hidden" name="next" value="/portal/" />
{% endif %}
<input type="submit" value="login" />
</form>
答案 0 :(得分:3)
您可以创建新的form
,替换包含form.errors
的表单并将其返回给模板。如果form.is_valid():
不是True
,那么它会查找下一个逻辑返回。在返回模板之前,您可能正在创建新的form
权限。
修改强>
如果您使用的是django.contrib.auth.views.login,则documentation表示您应在表单中指定action
并将其分配给
{% url 'django.contrib.auth.views.login' %}
。
您应该将form
更改为
<form method="POST" action="{% url 'django.contrib.auth.views.login' %}">
也可以使用
{% csrf_token %}
之后的<form>
。