发生了一些奇怪的事情。假设我有一个字段定义为:
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
运算符由于某种原因停止工作。有什么想法吗?
答案 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
示例代码中对 super(ContactForm,self).clean()的调用可确保维护父类中的任何验证逻辑。