dre*_*ker 0 google-app-engine python-2.7 google-cloud-datastore
在创建类Example(ndb.Model)的新实体时,我可以按如下方式设置父实体:
e1 = Example(parent=some_entity.key)
e1.put()
Run Code Online (Sandbox Code Playgroud)
这将保存在数据存储区中,一切正常.
我也可以设置id:
e2 = Example(id='some_unique_id')
e2.put()
Run Code Online (Sandbox Code Playgroud)
但是当我尝试设置实体的id和父节点时,似乎父节点没有设置:
e3 = Example(parent=some_entity.key, id="some_other_unique_id")
e3.put()
Run Code Online (Sandbox Code Playgroud)
此外,上面似乎允许我保存e3没有问题,但我不能再通过它的ID获取它.以下不起作用:
Example.get_by_id("some_other_unique_id")
Run Code Online (Sandbox Code Playgroud)
返回无.
有什么办法我可以在实体上设置父节点和id吗?我尝试使用ndb.Key()使用祖先路径构建密钥,但无济于事.
您还需要添加parent参数:https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_get_by_id
说明:上面的方法是一种简写Key(cls, id).get().密钥是唯一标识数据存储区中的实体的内容,而不是id.密钥包括:app名称(隐式,不能通过API设置),名称空间(可选),种类,父键(可选)和id.您需要所有这些来创建一个唯一的密钥.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |