django登录未显示错误消息

时间:2011-09-02 21:46:24

标签: django django-templates django-forms

我有一个常规的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>

1 个答案:

答案 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>