Django 登录不显示错误

标签 django authentication

我知道有很多这样的问题,但没有一个包含明确的答案。我正在使用 Django 的默认身份验证,但无法显示“您的用户名/密码组合不正确”之类的内容。是否可以在不创建自定义 View 函数的情况下解决此问题?

我的 urls.py 看起来像这样:

    url(r'^login/$', auth_views.login, {'template_name': 'login.html'},
    name='mysite_login')

然后我的login.html有如下代码:

{% block content %}
<section class="content">
  <div class="container block">
      <div class="row">
          <div class="col-md-12"></div>
            <form action="{% url 'mysite_login' %}" class="form-control" method="post" accept-charset="utf-8">
              {% csrf_token %}
              {% for field in form %}
                <p>
                  {{ field.label_tag }}<br>
                  {{ field|addcss:'form-control' }}
                  {% if field.help_text %}
                    <small style="color: grey">{{ field.help_text|safe }}</small>
                  {% endif %}
                  {% for error in field.errors %}
                    <p style="color: red">{{ error }}</p>
                  {% endfor %}
                </p>
              {% endfor %}
              <button type="submit" class="btn btn-dark">Login</button>

              <input class="form-control" type="hidden" name="next" value="{{ next }}"><br>

            </form>
          </div>
      </div>
  </div>
 </section>
{% endblock %}

所以这一切都有效,除了显示错误消息。我已经看到答案,您可以在其中编写自定义 View 函数和表单来解决此问题,但我认为在使用内置登录功能时也应该可行吗?非常感谢。

最佳答案

built-in login form不在单个字段级别显示错误;说只是密码错误是一种安全风险,因为它确认了特定用户名的存在。因此,错误在一般的 clean() 方法中出现,并通过 {{ form.non_field_errors }} 显示在模板中。

关于Django 登录不显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823551/

相关文章:

python - FTP 可以在浏览器中进行无需身份验证的连接,但不能在代码中进行连接

使用外部 Laravel 护照 lumen api 进行 Laravel 客户端身份验证

PHP LDAP 自动验证

php - 登录表单即使输入错误的用户名/密码也能成功

python - 迁移 Django 数据库时出现重复的列名

python - 进行子选择的 django 方法是什么?

python - Heroku dynos 在部署后立即崩溃 : DATABASE undefined

python - 在单个模型中使用相同的 related_name。 Django

python - QuerySet 对象在 Django Rest Framework 上没有属性 'user'

linux - 使用 ssh 在本地和远程服务器之间传输文件而无需密码验证