在ModelForm的documentation中,要告知,要在表单上执行自定义验证,必须覆盖.clean()
方法。
但是,我更喜欢使用clean_<fieldname>
方法,因为我只需要验证单个字段。这适用于标准forms.Form
,但没有提及forms.ModelForm
的问题。
Django是否支持此方法?
答案 0 :(得分:0)
是的,当然。请参阅下面给出的示例。
class UserForm(form.ModelForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'website', 'twitter','facebook', 'linkedin',
'glassdoor', 'github',)
def clean_github(self):
github = self.cleaned_data.get('github')
if github and not re.match(r'^[a-zA-Z0-9-]+$', github):
raise forms.ValidationError('Please enter a valid github username')
return github