Django - 常见清洁数据

时间:2011-07-18 01:31:31

标签: django django-models django-forms

我有一个模型,以及使用此模型的3种不同形式(当然,每种形式都有此模型的不同字段)。我写了几个 clean 函数来验证表单填写...但是,我真的不想复制并将此验证通过所有表单。

是否可以有一个普通的清洁课程?我怎么称呼它?

以下是实际代码:

models.py

class UserProfile(models.Model):      

    user = models.ForeignKey(User, unique=True)

    cpf = models.CharField('CPF', max_length=14, blank=True)
    cnpj = models.CharField('CNPJ', max_length=18, blank=True)

...

forms.py

 class yyyyyForm(UserCreationForm):  
           ...
           def Meta:
              ...
           def Save:
              ...
           def clean_cpf(self):
              ...

class xxxxxForm(UserCreationForm):  
   ...
   def Meta:
      ...
   def Save:
      ...
   def clean_cpf(self):
      ...

1 个答案:

答案 0 :(得分:3)

为什么你没有一个baseForm类放在clean_cpf()方法中,然后为其他表单扩展,并且因为clean_cpf在父表单中,所以你不必在子类中实现它

在你的例子中,看起来你有一个名为UserCreationForm的基类,如果这是你可以编辑的表单,那么你可以把你的干净方法放在那里。