Django Auth Views登录页面显示没有错误

问题描述 投票:1回答:1

我正在使用Django Auth Views来实现我的登录页面。

这是我的网址:

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

这是模板:

{% extends 'base.html' %} {% block content %}

  <div class="ui raised text container segment">
      <div class="ui horizontal divider">Login</div>
      <form method='POST'>
          <div class="ui form segment">
              {% csrf_token %}
              <div class="required field">
                  {{ form.username.label }} 
                  {{ form.username }} {{ form.username.errors }}
              </div>
              <div class="required field">
                  {{ form.password.label }} {{ form.password }} {{ form.password.errors }}
              </div>
              <button class="ui primary submit button" name="submit_button" id="submit_button" type="submit">Login</button><br>

            Forgot your password? Click <a href='/password_reset/'>here</a>.

          </div>
      </form>
      <div class="ui bottom attached warning message">
            <i class="icon help"></i>
            Haven't signed up yet? <a href="/signup/">Signup here</a> instead.
          </div>
  </div>

{% endblock %}

当我输入我知道正确的密码时,不会显示任何错误消息。

有没有解决这个问题?

谢谢

html django jinja2
1个回答
0
投票

您可以使用django.contrib的消息框架

def your_login_view(request):
    if request.method == "POST":
        //your logics here//
    else:
        messages.error(request, 'Error! wrong username/password')

    return render(request, 'app/login.html')

然后在你的模板中

{% if messages %}
<ul>
    {% for message in messages %}
        <li>{{message}}</li>
    {% endfor %}
</ul>
{% endif %}

<form method='POST'>
      <div class="ui form segment">
          {% csrf_token %}
        //template logic//
</form>

当输入错误的电子邮件或密码时,这将显示错误消息以及字段。

© www.soinside.com 2019 - 2024. All rights reserved.