验证ModelForm的最佳方法

时间:2013-04-08 00:33:38

标签: python regex django validation modelform

我在表单中有一个字段“phone”,用ModelForm创建。我想验证这个字段。这是models.py中的代码:

class UserProfile(models.Model):
     user = models.ForeignKey(User, unique=True)
     phone = models.CharField(max_length=20, validators=[validate_phone])

forms.py:

class UserProfileResetForm(ModelForm):
     class Meta:
         model = UserProfile
         exclude = ('user')

据我所知,到目前为止,有几种方法可以验证从django中的ModelForm创建的表单。我看到至少有3个: 1.将UserProfileResetForm中的电话覆盖为RegexField 2.使用验证器(就像我现在一样) 3.在UserProfileResetForm中创建clean_phone方法

所以我有点困惑......最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

做你现在正在做的事情。如果您有可以放置在模型上的验证器,那么它不仅会验证您的所有模型,还会在管理界面中执行验证。如果仅在模型中覆盖clean_phone,如果有特定的验证,则只需执行该表格。您可以放置​​该验证程序的级别越低,您的应用程序(和数据)就越一致。