app engine ndb - 如何使用id按键加载实体?

use*_*331 9 google-app-engine google-cloud-datastore

我正在尝试使用由数据存储区分配的ID来按键加载实体,但我没有看到任何api方法(使用NDB).我以为我可以从一个整数id创建一个Key并使用key.get()来加载实体,但是我没有看到从一个id创建一个键的方法.我怀疑我在这里遗漏了一些明显的东西.我应该如何加载一个我只知道它的id的实体?

asc*_*d00 28

YourModel.get_by_id() 通过id获取模型实例.

这里是文档:https:
//developers.google.com/appengine/docs/python/ndb/modelclass#Model_get_by_id

不要以为你不能在不知道类型的情况下通过id获取实体,因为不同Model类的实例可以具有相同的id/key_name

  • 我认为文档是错误的,我不能让它为我的生活工作,但后来我注意到我传入了一个str所以将长ID转换成int就行了,尽管文档引导你相信你可以使用str,这至少不适用于本地开发者应用服务器应用引擎版本1.8.9.一旦我做了一个int(id_str)它工作正常. (2认同)

Gui*_*sum 27

另一种方式:ndb.Key(YourModel, id).get().