Django:包含在出现错误时重新加载登录表单

Django:包含在出现错误时重新加载登录表单,django,django-views,django-forms,Django,Django Views,Django Forms,我正在构建一个Django应用程序,如果没有用户登录,我将显示一个登录页面,并在该页面中显示登录表单。我按照这些步骤开始,然后我添加了一个上下文处理器,以便在登录页视图中显示登录表单,并将其添加到settings.py中的context_processors列表中 所有这些都非常有效!我可以成功地让某人登录,或者如果我输入了错误的密码,我会收到凭据不正确的消息 问题:如果我输入了错误的密码,身份验证失败,网站会自动重新加载登录表单,并将消息发送给用户(因此用户将转到另一个页面)。如何在最初显示表

我正在构建一个Django应用程序,如果没有用户登录,我将显示一个登录页面,并在该页面中显示登录表单。我按照这些步骤开始,然后我添加了一个上下文处理器,以便在登录页视图中显示登录表单,并将其添加到settings.py中的context_processors列表中

所有这些都非常有效!我可以成功地让某人登录,或者如果我输入了错误的密码,我会收到凭据不正确的消息

问题:如果我输入了错误的密码,身份验证失败,网站会自动重新加载登录表单,并将消息发送给用户(因此用户将转到另一个页面)。如何在最初显示表单的同一登录页中显示错误消息?(注意:我正在使用默认的Django身份验证,还没有做任何事情来定义任何特殊行为)

landing.html:

{% block content %}
    Some welcome message! 
    {% include "registration/login.html"%}
    
    Some other contents
{% endblock content %}
context_processors.py:

def include_login_form(request):
    from django.contrib.auth.forms import AuthenticationForm
    form = AuthenticationForm()
    return {'form': form}
Login.html:

{% extends 'familytree/base.html' %}
{% block content %}
  {% if form.errors %}
    <p>Your username and password didn't match. Please try again.</p>
  {% endif %}

  {% if next %}
    {% if user.is_authenticated %}
      <p>Your account doesn't have access to this page. To proceed,
      please login with an account that has access.</p>
    {% else %}
      <p>Please login to see this page.</p>
    {% endif %}
  {% endif %}

  <form method="post" action="{% url 'login' %}">
    {% csrf_token %}
    <table>
      <tr>
        <td>Email address: </td>
        <td>{{ form.username }}</td>
      </tr>
      <tr>
        <td>{{ form.password.label_tag }}</td>
        <td>{{ form.password }}</td>
      </tr>
    </table>
    <input type="submit" value="Log in" />
    <input type="hidden" name="next" value="{{ next }}" />
  </form>
<a href="{% url 'password_reset' %}">Forgot password?</a>
{% endblock %}
{%extends'familytree/base.html%}
{%block content%}
{%if form.errors%}
您的用户名和密码不匹配。请再试一次

{%endif%} {%if next%} {%if user.u经过身份验证%} 您的帐户无权访问此页面。继续, 请使用具有访问权限的帐户登录

{%else%} 请登录以查看此页面

{%endif%} {%endif%} {%csrf_令牌%} 电邮地址: {{form.username} {{form.password.label_tag}} {{form.password}} {%endblock%}
您是否尝试从表单中删除url操作:谢谢您的想法!当我尝试这样做时,它确实让我保持在同一页上,但它不再显示用户名/密码不匹配的错误消息:/n然后我也尝试了url“landing”,但同样的事情:我保持在同一页上,但没有显示错误文本