[英]Strange validation error messages
我正在使用標准的身份驗證表格。 它的干凈方法如下所示:
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 %}
但是我得到的不是驗證消息:
如果用戶名和密碼不正確或帳戶無效:“ 1. __all__
”
如果未提供1. password
:“ 1. password
”
如果未提供1. username
:“ 1. username
”
如果都沒有給出:“ 1. username 2. password
”
沒有關於用戶名不正確的消息
編輯:如果我改變
<td>
<ol>
{% for error in form.errors %}
<li>{{ error }}</li>
{% endfor %}
</ol>
</td>
至 :
{{form.errors}}
我收到了__all__ and beneath it "Account inactive"
。 如何獲取消息? 有任何想法嗎 ?
嘗試這個。 form.errors是一本字典,因此像每本字典一樣,您可以讀取鍵和值。 鍵是字段或__all__
',值是您要查找的錯誤消息。
{% if form.errors %}
<tr>
{% for k, v in form.errors.items %}
<td>{{k}}</td>
<td>{{v}}</td>
{% endfor %}
</tr>
{% 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 %}
或在ifequal中選擇'__all__'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.