我試圖自定義用戶輸入的文本長度超過模型中CharField的最大長度時顯示的錯誤消息。該模型定義的字段,如下所示:Django - 更改CharField TextInput上的max_length錯誤消息
name = models.CharField(max_length=200)
我對這個模型定義表單字段,如下一個的ModelForm:
name = forms.CharField(widget=forms.TextInput(attrs={'class':"span8", 'placeholder':'e.g. How do I setup a wi-fi network? How to sync my iPhone with iCloud?'}),
error_messages={'required': 'Please enter a question.', 'max_length': 'Your question is too long.'})
也能正常工作的「必要」的錯誤消息,但'max_length'錯誤消息在這裏仍然使用Django的默認消息。我是否做錯了或者應該以其他方式定製這些文字?
這有效,但在模型中的名稱定義之後。我試圖把它放在ModelForm中的名稱定義之後,但在那個時候name.validators是一個空列表。 –
@JamieForrest驗證器只適用於'form.CharField'不具有'None'' max_length'。你可以在驗證程序中檢查'isinstance(validator,MaxLengthValidator)'而不是硬編碼的'[-1]' – okm