我有一个类别模型,它有一个外部自身,可以有Null值。
我知道当外键为Null时,唯一的一起不起作用。另外,我想检查它们是否重复,唯一一致无关紧要的情况(低级,高级,组合)以及父级和子级没有相同的名称。
我在网站上发现了一些部分解决方案但不是很好,并没有涵盖我的所有情况。另一件事,我在模型上做了干净,因为我在Admin中有类别,因此我无法控制任何形式或视图。
现在我在'name__iexact'上有一个错误,并且不明白为什么因为'name == self.name'有效。
c[i]
self.pk = pk;我检查一下,因为在更新的情况下,它会找到我编辑的当前实例并抛出ValidationError,这是不行的。
c
name__iexact出错:
"NameError: name '_' is not defined"
答案 0 :(得分:1)
试一试,并填写完整的错误堆栈
exists = self.__class__.objects.exclude(pk=self.pk).filter(name__iexact=self.name).exists()
答案 1 :(得分:0)
如果要检查相同的字符串值,我建议使用“is”运算符:
if self.name.lower() is self.parent.lower()
通过这种方式,您正在测试它们是否共享相同的内存地址,这很好,因为Python在一个内存地址存储具有相同值的字符串。