【发布时间】:2014-04-11 04:24:40
【问题描述】:
我正在使用 Django 1.6.2 和在 ModelForms as mentioned in this question 上的 1.6 版本中添加的新元选项,表单上的错误不像我设置的那样显示。
我的代码:
模型表单
class UserRegisterForm(forms.ModelForm):
"""A form for creating new users. Includes all the required
fields, plus a repeated password."""
password = forms.CharField(label='Password', widget=forms.PasswordInput)
class Meta:
model = MyUser
fields = ('email','first_name','last_name')
error_messages = {
'email': {
'invalid': u"Hai",
'required': u"Sup",
},
}
def save(self, commit=True):
# Save the provided password in hashed format
user = super(UserRegisterForm, self).save(commit=False)
user.set_password(self.cleaned_data["password"])
if commit:
user.save()
return user
模板
<div class="form-group emailgroup {% if form.email.errors %}has-error has-feedback{% endif %}">
<label for="emailfield">Dirección de correo electrónico</label>
<input type="email" class="form-control" id="emailfield" name="email" required placeholder="¿Cuál es tu dirección de correo electrónico?">
{% if form.email.errors %}<span class="glyphicon glyphicon-remove form-control-feedback"></span>
<span class="help-block">{{ form.email.errors }}</span>
{% endif %}
</div>
请注意模板中我打印字段错误的以下几行。
{% if form.email.errors %}<span class="glyphicon glyphicon-remove form-control-feedback"></span>
<span class="help-block">{{ form.email.errors }}</span>
{% endif %}
但我仍然收到预定义的错误消息。我做错了什么?
【问题讨论】:
-
您能在这篇文章中验证您的缩进吗?我不确定这实际上是您的代码(会导致问题的原因)还是只是创建问题时的复制/粘贴/格式问题。
-
谢谢,我没注意到。这实际上是一个复制粘贴问题,它在我的代码中正确缩进。
-
感谢您的澄清。另一个问题:“我仍然收到预定义的错误消息”是什么意思?它在哪里显示?输入字段的 HTML5 验证或来自服务器端的与字段相关的错误消息?
-
我们收到与字段相关的错误消息。我正在使用已经存在的电子邮件强制表单,并且 {{ form.email.errors }} 打印默认消息而不是 u"Hai"
标签: django django-forms