form.has_errors标记不起作用

时间:2011-01-06 12:12:47

标签: python django

我正在使用Django 1.2.3。我使用django.contrib.auth.views.login在我的网站中拥有登录功能。输入正确的用户名和密码后,用户可以登录。但是,form.has_errors不起作用,即如果输入的登录凭据不正确,我不会看到错误消息。我在模板/注册中的login.html如下:

<html>
    <head>
        <title>Login</title>
    </head>
    <body>
        <h1>User Login</h1>
        {% if form.has_errors %}
            <p>Your username and password didn't match. Please try again.</p>
        {% endif %}
        <form method="post" action=".">
            {% csrf_token %}
            <p><label for="id_username">Username:</label> {{ form.username }}</p>
            <p><label for="id_password">Password:</label> {{ form.password }}</p>
            <input type="hidden" name="next" value="/" />
            <input type="submit" value="login" />
        </form>
    </body>
</html>

有什么方法可以解决这个问题?

请帮助 谢谢。

1 个答案:

答案 0 :(得分:6)

Form对象确实具有errors属性,有关详细信息,请阅读the docs

{% if form.errors %}
    <p>Your username and password didn't match. Please try again.</p>
{% endif %}

显然has_errors在Django 0.95中有效,但至少从1.0以上(因为它被errors替换)。 [reference]