Django 奇怪的验证错误消息
我使用的是标准身份验证表单。它的干净方法如下所示:Django 奇怪的验证错误消息,django,django-forms,validation,Django,Django Forms,Validation,我使用的是标准身份验证表单。它的干净方法如下所示: def clean(self): username = self.cleaned_data.get('username') password = self.cleaned_data.get('password') if username and password: self.user_cache = authenticate(username=username, password=password)
def clean(self):
username = self.cleaned_data.get('username')
password = self.cleaned_data.get('password')
if username and password:
self.user_cache = authenticate(username=username, password=password)
if self.user_cache is None:
raise forms.ValidationError(_("Please enter a correct username and password. Note that both fields are case-sensitive."))
elif not self.user_cache.is_active:
raise forms.ValidationError(_("This account is inactive."))
# TODO: determine whether this should move to its own method.
if self.request:
if not self.request.session.test_cookie_worked():
raise forms.ValidationError(_("Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."))
return self.cleaned_data
我的登入表格:
<form method="post" action="{% url django.contrib.auth.views.login %}">
<table>
{% if form.errors %}
<tr class="form-errors">
<td>
<ol>
{% for error in form.errors %}
<li>{{ error }}</li>
{% endfor %}
</ol>
</td>
</tr>
{% endif %}
致:
{{form.errors}}
我收到,即\uuuuu all\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。如何获得信息?
有什么想法吗 试试这个。form.errors是一个字典,所以像每个字典一样,您可以读取键和值。键是field或\uuuuuuuuuuuuuuuuuuuuuuu
,值是您要查找的错误消息
{% if form.errors %}
<tr>
{% for k, v in form.errors.items %}
<td>{{k}}</td>
<td>{{v}}</td>
{% endfor %}
</tr>
{% endif %}
{%if form.errors%}
{%k,v在form.errors.items%}
{{k}
{{v}
{%endfor%}
{%endif%}
编辑
如果不想选择特定的字段错误类型:
{% if form.errors %}
{% for k, v in form.errors.items %}
<tr>
{% ifequal k 'password' %}
<td>Password</td>
{% else %}
{% ifequal k 'username' %}
<td>Username</td>
{% else %}
<td>Other</td>
{% endifequal %}{% endifequal %}
<td>{{v}}</td>
</tr>
{% endfor %}
{% endif %}
{%if form.errors%}
{%k,v在form.errors.items%}
{%ifk'密码'%}
密码
{%else%}
{%ifk'用户名“%”
用户名
{%else%}
其他
{%endifequal%}{%endifequal%}
{{v}
{%endfor%}
{%endif%}
或者在ifequal中选择“\uuuu all”
{% if form.errors %}
{% for k, v in form.errors.items %}
<tr>
{% ifequal k 'password' %}
<td>Password</td>
{% else %}
{% ifequal k 'username' %}
<td>Username</td>
{% else %}
<td>Other</td>
{% endifequal %}{% endifequal %}
<td>{{v}}</td>
</tr>
{% endfor %}
{% endif %}