Django表格验证冲突

时间:2017-02-23 16:19:20

标签: django forms validation model

发生了一些奇怪的事情。假设我有一个字段定义为:

Project_name = models.CharField(max_length=250, unique=True)

因此Project_name必须具有唯一值,否则会引发错误。然后我想添加其他验证检查。所以在我的forms.py

def clean(self):
    data = self.cleaned_data
    if data['team_member2'] == data['team_member3']:
        raise ValidationError("Can't have duplicate team members")

但是,一旦我添加此函数,unique运算符由于某种原因停止工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在覆盖时,你没有调用超级类的clean方法。

试试这个:

def clean(self):
    data =  super(FormClass, self).clean()
    if data['team_member2'] == data['team_member3']:
        raise ValidationError("Can't have duplicate team members")
    return data

来自documentation

  

示例代码中对 super(ContactForm,self).clean()的调用可确保维护父类中的任何验证逻辑。