Django如何覆盖默认表单错误消息

时间:2013-05-16 16:48:50

标签: python django django-forms django-templates django-admin

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我用上面的方法,但是出现了同样的信息。如何解决。

由于

2 个答案:

答案 0 :(得分:3)

像这样定义你的字段:

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

希望这有帮助!

答案 1 :(得分:1)

您还需要为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'}
                        )