我正在使用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 %}
当我输入我知道正确的密码时,不会显示任何错误消息。
有没有解决这个问题?
谢谢
您可以使用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>
当输入错误的电子邮件或密码时,这将显示错误消息以及字段。