您可以添加自定義行爲form.clean()是這樣的:
class YourForm(forms.Form):
# Everything as before.
...
def clean_name(self):
data = self.cleaned_data['name']
if data.strip() == '':
raise forms.ValidationError(u"You must provide more than just whitespace.")
# Always return the cleaned data, whether you have changed it or
# not.
return data
但是,如果你想創建一個類型字段的自動獲取這種類型的驗證,添加一個新的類象這
class NoSpacesCharField(forms.CharField):
def validate(self, value):
# Use the parent's handling of required fields, etc.
super(NoSpacesCharField, self).validate(value)
if value.strip() == '':
raise ValidationError(u"You must provide more than just whitespace.")
然後使用NoSpacesCharField
就像你通常使用forms.CharField。
我不是目前的位置來測試這個代碼,所以有可能是在它的奇扭結,但它應該讓你大部分的方式存在。有關在Django的表單驗證進一步信息見https://docs.djangoproject.com/en/dev/ref/forms/validation/
Thanks..The第一個解決方案爲我工作很好。現在,如果我不得不延長爲更多的領域做我不得不重複自己驗證..或者是有一個簡單的方法周圍。 –
如果你創建一個自定義字段類型,那麼你可以在任何需要這樣驗證的字段的地方使用它。這就是我的第二段代碼。 (我剛剛解決了超級通話中的錯誤)。這樣,你可以使用'名稱= NoSpacesCharField(MAX_LENGTH = 200)'和'anotherField = NoSpacesCharField(MAX_LENGTH = 100)'等,而無需重複驗證代碼。 –