Modelform元类中的Django 1.6错误消息不起作用
我在ModelForms上使用Django 1.6.2和1.6版本中添加的新元选项,表单上的错误不会像我设置的那样显示 我的代码: 模型 模板 请注意模板中打印字段错误的以下几行Modelform元类中的Django 1.6错误消息不起作用,django,django-forms,Django,Django Forms,我在ModelForms上使用Django 1.6.2和1.6版本中添加的新元选项,表单上的错误不会像我设置的那样显示 我的代码: 模型 模板 请注意模板中打印字段错误的以下几行 {% if form.email.errors %}<span class="glyphicon glyphicon-remove form-control-feedback"></span> <span class="help-block">{{ form.email.
{% if form.email.errors %}<span class="glyphicon glyphicon-remove form-control-feedback"></span>
<span class="help-block">{{ form.email.errors }}</span>
{% endif %}
但我仍然得到预定义的错误消息。我做错了什么?通常将错误消息定义为类属性,而不是在内部元中。下一步是为您的电子邮件字段提供一个干净的方法,如果给定的电子邮件无效,该方法将引发ValidationError:
error_messages = {
"invalid_email": "Email is invalid.",
}
def clean_email(self):
email = self.cleaned_data["email"]
# Check the content of email here
...
# If not valid raise ValidationException referencing the predefined error message
...
raise ValidationError(self.error_messages["invalid_email"], code="invalid_email",)
# If valid return value
return email
你能核实一下你在这篇文章中的缩进吗?我不确定这是否是您的代码导致了问题,或者在创建问题时只是复制/粘贴/格式问题。谢谢,我没有注意到。这实际上是一个复制粘贴问题,它在我的代码中正确缩进了。谢谢你的澄清。另一个问题:我仍然收到预定义的错误消息是什么意思?它显示在哪里?输入字段的HTML5验证或来自服务器端的字段相关错误消息?我们得到一条字段相关错误消息。我用一封已经存在的电子邮件强制表单,并且{{form.email.errors}}打印一条默认消息,而不是像符咒一样工作。非常感谢但这令人困惑。文档中没有提到必须调用自定义clean_xyz方法。我的理解是,通过简单地在元类中定义一个错误消息字典,默认消息将被新定义的消息替换。我错过什么了吗?
{% if form.email.errors %}<span class="glyphicon glyphicon-remove form-control-feedback"></span>
<span class="help-block">{{ form.email.errors }}</span>
{% endif %}
error_messages = {
"invalid_email": "Email is invalid.",
}
def clean_email(self):
email = self.cleaned_data["email"]
# Check the content of email here
...
# If not valid raise ValidationException referencing the predefined error message
...
raise ValidationError(self.error_messages["invalid_email"], code="invalid_email",)
# If valid return value
return email