親子階層にデータを格納したい。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()
これで、インスタンス メソッドを使用して子のキーを調べることができます。
parent = child.key.parent()
ancestors = child.key.pairs()
ルート エンティティが必要な理由は、Ancestor クエリのためです。
parents = Parent.query(ancestor=root)
children = Child.query(ancestor=root)
その後、 を調べて、child.key.parent()
その親キーを確認できます。
于 2013-08-05T14:49:03.590 に答える