2

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

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

表格.py:

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

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

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

4

1 回答 1

1

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

于 2013-04-08T05:34:00.373 回答