Django如何覆盖默认表单错误消息
Posted
技术标签:
【中文标题】Django如何覆盖默认表单错误消息【英文标题】:Django How to override default form error messages 【发布时间】:2013-05-11 16:23:57 【问题描述】:forms.py
class PhoneForm(forms.ModelForm):
emergency_number = forms.IntegerField(required=False,error_messages='required': 'Enter a valid phone number')
在验证输入的数据是数字时,我收到默认的 django 错误消息 "Enter a whole number"
。而不是我希望它是 "Enter a valid phone number"
。
从 Doc 我使用上述方法,但出现相同的消息。如何解决。
谢谢
【问题讨论】:
【参考方案1】:这样定义你的字段:
emergency_number= forms.IntegerField(
required=False,
error_messages='invalid':'Enter a valid phone number'
)
在文档中查看 IntegerField
的错误键是 4:
required, invalid, max_value, min_value
因此,您必须在要覆盖的 error_messages
dict 中包含键。
顺便说一句,required
永远不会被抛出,因为您指定的是 required=False
。
希望这会有所帮助!
【讨论】:
我发现这是覆盖error_messages的最简单方法。我也没有意识到每个表单字段都有默认的错误键,这让事情变得更容易理解。谢谢!【参考方案2】:您还需要为invalid
值指定消息,如
class PhoneForm(forms.ModelForm):
emergency_number = forms.IntegerField(required=False,
error_messages='required': 'Enter a valid phone number',
'invalid': 'Enter a valid phone number'
)
【讨论】:
以上是关于Django如何覆盖默认表单错误消息的主要内容,如果未能解决你的问题,请参考以下文章