4

データストアからエンティティを取得するためにget_by_idを使用したことがあり、 Ancestor Pathsを使用したことはありません。しかし、私のモデルの複雑さのために、それが必要になりました。実際、祖先パスは大きな問題を解決しますが、エンティティが親キーを持っている場合にget_by_idエンティティを返そうとすると、今ではそうです。Noneこれは、親キーを追加する必要があることを意味します。

entity = MyModel.get_by_id(id)

これは次のようになります。

entity = MyModel.get_by_id(id, parent=key)

親キーを作成する方法は?

編集:

この時点で、先祖のパスを残し、別のキー プロパティを追加することを好みます。

4

1 に答える 1

7

エンティティ グループを使用する場合は、次のようなキーを簡単に作成できます。

key_parent = db.Key.from_path('MyModelParent', 'id_parent') # You don't have to create this kind in the datastore.

id = int(self.request.get('id'))
entity = MyModel.get_by_id(id, parent=key_parent)

キー パラメータに大文字を使用しています。Parentではなくです。

entity = MyModel.get_by_id(id, Parent=key) # Wrong
entity = MyModel.get_by_id(id, parent=key)

ああ、あなたは NDB を使用しています:

key_parent = ndb.Key('MyModelParent', 'id_parent')
于 2012-07-06T13:32:41.773 に答える