游戏:自动创建子实体

时间:2014-08-01 14:50:08

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

在我正在开发的GAE应用程序中,我有一个Room实体,它有KeyPropertyMatch个对象。房间应该总是匹配,没有房间就不能存在匹配。

现在,我假设我必须创建一个匹配对象:

Match(parent=room.key)

但是,房间总是需要创建匹配,我想到的唯一方法是:

room = Room()
match = Match(parent=room.put())
room.match_key = match.put()
room.put() # again!

有没有办法避免这个问题?

1 个答案:

答案 0 :(得分:5)

我不明白为什么你希望Match都将Room作为父级,而父级需要KeyProperty来匹配。这是不必要的循环。选择一个或另一个:如果您想要父/子关系,请保留父键并通过ancestor()查询匹配;否则遗漏父键,所以不需要先创建房间。