gpt4 book ai didi

python - 如何在 django 中为继承的模型属性创建通用模型表单字段验证器?

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:54 25 4
gpt4 key购买 nike

我有一个父模型:

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

我继承这个模型来创建供应商、客户、员工模型。现在在管理模型表单中:

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() 

关于python - 如何在 django 中为继承的模型属性创建通用模型表单字段验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27874312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com