ModelForm支持clean_ <fieldname>吗?

时间:2015-11-29 18:08:07

标签: django modelform

在ModelForm的documentation中,要告知,要在表单上执行自定义验证,必须覆盖.clean()方法。

但是,我更喜欢使用clean_<fieldname>方法,因为我只需要验证单个字段。这适用于标准forms.Form,但没有提及forms.ModelForm的问题。

Django是否支持此方法?

1 个答案:

答案 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