django - 努力显示 django 验证消息
问题描述
我试图在我的模板上为我的登录表单显示一个内置的 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 %}
解决方案
LoginView
没有任何特定字段相关的错误消息,只有两个非字段错误消息:
- 无效登录和
- 非活动用户。
您可以像这样呈现这些错误:
{% for error in form.non_field_errors %}
{{ error }}
{% endfor %}
推荐阅读
- reactjs - 我怎样才能在反应中为formData创建if else?
- razor - 剃须刀页面中的模型绑定不绑定对象
- javascript - Redux store reducer 实现了错误的接口
- android - 为什么在 Google Play 封闭式测试中使用我的应用时出现奇怪的 Gmail 帐户
- google-search - 我的空格键删除了 Google 搜索或 youtube 上的文字
- django - 如何在 django 中使用一个查询在没有 FK 的情况下检索相关实例
- python - 按名称将网络抓取结果保存到 txt 文件
- php - 亚马逊广告卷曲 PHP
- javascript - 如何修复错误:Fontconfig 错误:无法加载默认配置文件
- shell - 插入符号和 ANSI 转义序列之间的区别