问题描述
我正在使用Django的内置身份验证类视图,并且需要自定义密码验证失败时显示的错误消息。
例如,在内置的 PasswordResetView
中,如果我尝试将密码更改为 test
,则以下错误将显示在我的模板:
我想将 new_password2
更改为 New Password
。
这是我的 PasswordResetView
模板的相关部分:
{% extends 'registration/base.html' %}
{% block card_body %}
<div class="form-group">
<label for="old_password">
Old Password:
{{ form.old_password }}
</label>
</div>
<div class="form-group">
<label for="new_password1">
New Password:
{{ form.new_password1 }}
</label>
</div>
<div class="form-group">
<label for="new_password2">
Confirm Password:
{{ form.new_password2 }}
</label>
</div>
<div class="form-group">
<input type="submit" value="Change" class="btn float-right login_btn">
</div>
{% endblock card_body %}
{% block card_footer %}
{% if form.errors %}
<p class="d-flex justify-content-center links">
{{ form.errors }}
</p>
{% endif %}
{% endblock card_footer %}
解决方法
-
向模板提供一些字典,该字典会将表单字段名称映射到您想要的标签:
fields_mapping = { 'old_password': 'Old password','new_password1': 'New password','new_password2': 'Confirm password' }
-
只需手动遍历错误并使用映射dic将字段名称转换为所需的标签:
{% for field_name in form.errors: %} {{ fields_mapping[field_name] }}: {% for err_message in form.errors[field_name]: %} * {{ err_message }} {% endfor %} {% endfor %}
在那里随意定制HTML / CSS