Google app engine db.ListProperty在避免重复键方面是否与set()类似?

Google app engine db.ListProperty在避免重复键方面是否与set()类似?,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,我有一个模型,它有一个名为tags的属性,类型为db.ListProperty(db.Key)。应用程序将向实体添加新标记,并且添加的标记可能已经作为列表的一部分存在 class Entity(db.Model): tags = db.ListProperty(db.Key) 应用引擎如何处理这些问题?是否避免重复?或者我们必须做一些类似的事情: entity.tags=list(set(entity.tags.extend(new_tags_list)))看看,除了验证之外,它看起来并没

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

class Entity(db.Model):
  tags = db.ListProperty(db.Key)
应用引擎如何处理这些问题?是否避免重复?或者我们必须做一些类似的事情:


entity.tags=list(set(entity.tags.extend(new_tags_list)))
看看,除了验证之外,它看起来并没有对列表做任何特殊的操作,您应该能够基于此实现自己的
SetProperty

否,
ListProperty
不进行重复数据消除-如果进行了重复数据消除,将违反其作为列表的默示约定。这是。

谢谢你。那么您将在模型文件中对ListProperty进行子类化并覆盖validate?如果您想在多个模型中使用这种属性,子类化是有意义的,否则,如果只在一个地方使用,您的解决方法看起来很简单。