我正在使用文本框從用戶獲取手機號碼。有沒有辦法在Django 1.7中重寫MinLengthValidator錯誤消息?
models.py
mobile = models.CharField(max_length=14, validators=[MinLengthValidator(10)])
默認的錯誤信息是這樣的:
Ensure this value has at least 10 characters (it has 2).
我如何可以覆蓋錯誤消息?
我正在使用文本框從用戶獲取手機號碼。有沒有辦法在Django 1.7中重寫MinLengthValidator錯誤消息?
models.py
mobile = models.CharField(max_length=14, validators=[MinLengthValidator(10)])
默認的錯誤信息是這樣的:
Ensure this value has at least 10 characters (it has 2).
我如何可以覆蓋錯誤消息?
是的,通過刪除驗證器並編寫自己的。你可以通過overriding your form's clean
method來做到這一點。
def clean(self):
cleaned_data = super(YourForm, self).clean()
mobile = cleaned_data.get("mobile")
if len(mobile) < 10:
raise forms.ValidationError("Your message here.")
的Django有added一個message
參數,所以在未來,你就可以說validators=[MinLengthValidator(10, message='My message')]
。
現在,最簡單的事情可能就是實例化類並設置消息屬性。
my_validator = MinLengthValidator(10)
my_validator.message = 'My message'
如果你不喜歡依賴未公開的代碼,那麼只需自己寫驗證器,它只會是幾行。