基于这篇文章:Django比较模型实例的相等性
我正在尝试从我的实例列表中删除重复项(这些实例尚未保存,我假设它们的'id'为None)
代码如下:
a = list()
a.append(relation_list.pop())
for x in relation_list:
duplicate = False
for z in a:
if z is x:
#or if z.attrib1 == x.attrib1 and z.attrib2 == x.attrib2:
duplicate = True
if not duplicate:
a.append(x)
然而,由于属性相等,因此永远不会执行行“duplicate = True”。
我错过了什么吗?
有没有更有效的方法来实现这一点?(灵感来自这篇帖子使用“in relation_list”也无效。)
relation_list
最初是如何被填充的吗? - Daniel Rosemanz
和x
相等,z is x
可能为False
。请参考这个问题。你可以尝试使用==
运算符代替is
吗? - xyres