【发布时间】:2020-01-13 20:11:07
【问题描述】:
我试图在我的模板上为我的登录表单显示一个内置的 Django 验证错误,我无法收到任何错误消息,例如“用户名和密码不匹配”。我究竟做错了什么? 这是我的forms.py
from django import forms
from django.contrib.auth.forms import AuthenticationForm
class LoginForm(AuthenticationForm):
username = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Username'}))
password = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control', 'placeholder':'Password'}))
botcatcher = forms.CharField(widget=forms.HiddenInput, required=False)
在我的项目 url.py 上
urlpatterns = [
path('login/', auth_views.LoginView.as_view(template_name='frontend/login.html', form_class=LoginForm), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='frontend/logout.html')),
# path('backend/', include('backend.urls')),
path('mrc/', include('frontend.urls')),
path('admin/', admin.site.urls),
]
在 login.html 上
{% for my_field in form.visible_fields %}
<!-- THIS IS FOR ERROR IN THE FORM -->
{% if my_field.errors %}
{% for err in my_field.errors %}
<div class="alert alert-danger">{{ err }}</div>
{% endfor %}
{% endif %}
<!-- THIS IS FOR THE FIELDS -->
<div class="form-group">
{{ my_field.label_tag }}
{{ my_field }}
</div>
<!-- END THE FIELDS -->
{% endfor %}
【问题讨论】:
标签: django validation django-forms