首页 > 解决方案 > Django 错误消息未显示无效登录

问题描述

我曾经auth在 Django 中执行登录功能。但是,每当我输入无效密码时,它都不会显示错误消息。

登录.html:

{% extends 'base.html' %}

{% block content %}
  <h2>Log in</h2>
  <form method="post" >
    {% csrf_token %}
    {% for field in form %}
      <p>
        {{ field.label_tag }}<br>
        {{ field }}
        {% if field.help_text %}
          <small style="color: grey">{{ field.help_text }}</small>
        {% endif %}
        {% if field.errors %}
          {% for error in field.errors %}
            <p style="color: red">{{ error }}</p>
          {% endfor %}
        {% endif%}
      </p>
    {% endfor %}
    <button type="submit">Log in</button>

  </form>
{% endblock %}

网址.py:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('ecomm.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
]

标签: pythondjangodjango-templatesdjango-authenticationdjango-3.0

解决方案


此错误的最常见原因是当您创建一个新的form,替换包含 的表单并将其form.errors返回到模板时。

如果您使用的是 django.contrib.auth.views.login 那么文档说您应该action在表单中指定并将其分配给

{% url 'django.contrib.auth.views.login' %}.

你应该改变你form

<form method="POST" action="{% url 'django.contrib.auth.views.login' %}">

如果这不能解决您的问题,请考虑将您的相关views.py代码添加到您的问题中。


推荐阅读