带有自引用列表的Python模型

时间:2012-07-04 06:21:07

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

我想做这样的事情:

class Author(db.Model):
    influencedBy = db.ListProperty(db.SelfReferenceProperty())
    influenced = db.ListProperty(db.SelfReferenceProperty())

我知道我可以使用self.author_set来获得反向关系,但是我需要将多个Author对象添加到受影响和受影响的对象中。

1 个答案:

答案 0 :(得分:1)

不幸的是,你不能做你的建议。你可能已经意识到你会得到ValueError: Item type ReferenceProperty is not acceptable

你可以做influencedBy = db.ListProperty(db.Key) 或者如果您使用了ndb influencedBy = ndb.KeyProperty(kind=Author,repeated=True)

需要考虑的事项是influencedByinfluenced中有多少成员。如果可能存在大量数据,则可能会遇到实体大小问题。如果有可能,那么您需要考虑使用单独的实体来记录影响力。