我有一个父模型:
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] 删除。
我来说两句