我用过get_by_id从数据存储中获取实体并且永远不要使用 Ancestor Paths .但是我模型的复杂性使它成为必要。事实上,祖先路径解决了一个大问题,但现在当我尝试 get_by_id
实体返回 None
如果实体有父键。这意味着我需要添加父 key :
entity = MyModel.get_by_id(id)
这会变成:
entity = MyModel.get_by_id(id, parent=key)
如何构建父Key?
编辑:
此时我更愿意保留祖先路径并添加另一个关键属性。
如果你想使用实体组,你可以像这样简单地创建一个键:
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)
我注意到:您使用大写字母作为关键参数。它是父级而不是父级。
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')
我是一名优秀的程序员,十分优秀!