在登录页面上未显示验证错误

时间:2019-12-04 09:47:06

标签: django

我正在使用django.contrib.auth.views.LoginView登录页面。密码或用户名不正确时,我无法显示验证错误。

views.py

from django.contrib.auth.views import LoginView
from django.shortcuts import reverse

class MyLoginView(LoginView):
        template_name = 'login.html'

        def get_success_url(self):
            return reverse('home')

login.html

    <form method="POST">
         {{ csrf_token }}
         {{ form.username }}
         {{ form.password }}
         <button type="submit">Login</button>
    </form>

1 个答案:

答案 0 :(得分:2)

这很有意义,因为您不会渲染错误。您可以使用以下方式呈现这些内容:

<form method="POST">
  {{ csrf_token }}
  {{ form.non_field_errors }}

  {{ form.username.errors }}
  {{ form.username }}

  {{ form.password.errors }}
  {{ form.password }}
</form>

但是,仅呈现表单本身可能更简单:

<form method="POST">
  {{ csrf_token }}
  {{ form }}
</form>

有关更多信息,请参见rendering form error messages section in the Django documentation