如何在Django中为继承的模型属性创建通用的modelform字段验证器?

用户名

我有一个父模型:

class AbstractAddress(models.Model):
    name = models.CharField(max_length=100,verbose_name='Name')
    address1 = models.CharField(max_length=100,null=True,blank=True)
    city = models.CharField(max_length=100,null=True,blank=True)
    phone = models.CharField(max_length=10,null=True,blank=True)
    pincode = models.IntegerField(null=True,blank=True, default=0)

    class Meta:
          abstract = True

我继承该模型来创建供应商,客户,员工模型。现在在admin ModelForm中:

pincode = CharField(widget=TextInput(attrs={'type':'number'}),
                    validators=[RegexValidator(regex='^.{6}$',message='Pincode can have 6 digits')],
                    required=False, min_length=6)

phone = CharField(widget=TextInput(attrs={'type':'number',
                                          'size':'10'}),
                  validators=[RegexValidator(regex='^.{10}$', message='Phone can have 10 digits')],
                  required=False, min_length=10)

我不想为上述模型的每个模型形式编写此代码。我怎样才能使用DRY呢?

用户名

我已经在项目中的settings.py文件夹中定义了验证,并将验证方法定义为:

def validated_pincode():
    pincode = CharField(widget=TextInput(attrs={'type':'number'}),
                  validators=[RegexValidator(regex='^.{6}$',message='Pincode can have 6 digits')],
                    required=False, min_length=6)
    return pincode

在modeladmin表单中,我调用该方法:

pincode = validated_pincode() 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档