【问题标题】:Best way to validate ModelForm验证 ModelForm 的最佳方法
【发布时间】:2013-04-08 00:33:37
【问题描述】:

我在表单中有一个字段“电话”,是用 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方法

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

【问题讨论】:

标签: python regex django validation modelform


【解决方案1】:

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

【讨论】:

  • 谢谢你的答案。是的,我肯定会为此目的使用验证器。现在,当我同时拥有登录和重置表单时,我可以为它们使用相同的验证器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2011-06-03
  • 2016-02-03
  • 1970-01-01
  • 2011-03-08
  • 2019-10-27
  • 1970-01-01
相关资源
最近更新 更多