db.ListProperty是否像set()一样避免重复键?

时间:2012-01-20 17:07:41

标签: google-app-engine google-cloud-datastore

我有一个名为db.ListProperty(db.Key)类型的属性的模型。该应用程序将向实体添加新标签,添加的标签可能已作为列表的一部分存在。

class Entity(db.Model):
  tags = db.ListProperty(db.Key)

应用引擎如何处理这些?是否避免重复?或者我们必须做类似的事情:

entity.tags = list(set(entity.tags.extend(new_tags_list)))

2 个答案:

答案 0 :(得分:2)

不,ListProperty没有进行重复数据删除 - 如果是这样,那将违反其默认合同。这是a straightforward implementation of a SetProperty

答案 1 :(得分:1)

查看ListProperty implementation,看起来它似乎对验证旁边的列表做了一些特殊操作,您应该能够基于此实现自己的SetProperty