如何在登录页面显示登录表单错误?

时间:2019-07-12 08:00:47

标签: html django forms

我正在尝试创建一个登录页面。我使用了默认的auth_view模板。我想在登录页面中打印用户名和密码字段错误。但是无法显示它们。

我尝试使用{{form.username.errors}},但无法正常工作。但是当说{{form.error}}时,它显示如下:

__all__
Please enter a correct username and password. Note that both fields may be case-sensitive.

urls.py

    path('login/', auth_views.LoginView.as_view(template_name='profiles/login.html'), name="login"),

表单模板

<div class="login-clean">
        <form method="post">
            <h2 class="sr-only">Login Form</h2>
            <div class="illustration"><i class="icon ion-code" style="color: rgb(71,151,244);"></i></div>
            {% csrf_token %}

            {{form.errors}}
            <div class="form-group"><input class="form-control" id="{{ form.username.id_for_label }}" type="text" name="{{ form.username.html_name }}"  placeholder="username"></div>
            <div class="form-group"><input class="form-control" id="{{ form.password.id_for_label }}" type="password" name="{{ form.password.html_name }}"  placeholder="username"></div>


            <div class="form-group"><button class="btn btn-primary btn-block" type="submit" style="background-color: rgb(71,151,244);">Log In</button></div><a class="forgot" href="#">Forgot your email or password?</a>
        </form>

我也想查看错误结果,如果要设置样式,如何做?

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以在登录表单模板中使用它:

 {% for field in form %}
   {% if field.errors %}
          <div class="alert alert-danger">
             {{ field.label }}: {{ field.errors|striptags }}
          </div>
   {% endif %}
 {% endfor %}