我想将数据存储在父子层次结构中。我想使用 ndb.put_multi 函数来做到这一点。问题是在我使用 put multi 存储父模型之后,我将如何获得父模型的相应键。请提出解决方案
问问题
349 次
2 回答
4
如果您已经使用 put_multi 作为父键,那么您已经拥有它们。
例如
list_of_parent_keys = ndb.put_multi(list_of_entities)
child_keys = []
for parent_key in list_of_parent_keys:
child_key = ndb.Key(Parent, parent_key, Child, child_key)
child_keys.append(child_key)
于 2013-08-02T10:09:45.763 回答
0
诀窍是存储“祖父母”或根实体,并让所有父实体在其键中引用它:
root = BaseClass()
root.put()
parent = Parent(parent=root)
parent.put()
child = Child(parent=parent)
child.put()
现在您可以使用Instance 方法检查孩子的密钥:
parent = child.key.parent()
ancestors = child.key.pairs()
您想要根实体的原因是为了祖先查询:
parents = Parent.query(ancestor=root)
children = Child.query(ancestor=root)
然后,您可以检查child.key.parent()
以查看其父键。
于 2013-08-05T14:49:03.590 回答