google app引擎中的get_by_id python ndb以无响应响应

mrm*_*123 3 google-app-engine app-engine-ndb

get_by_id在谷歌应用引擎python ndb中使用时遇到了麻烦.

Python代码

尝试1

resource = Content.get_by_id(6093630880088064)
Run Code Online (Sandbox Code Playgroud)

资源是 None

尝试2

resource = Content.get_by_id(6093630880088064, parent = 5249205949956096)
Run Code Online (Sandbox Code Playgroud)

BadValueError: Expected Key instance, got 5249205949956096L

尝试3

key_parent = ndb.Key('Subject', '5249205949956096')
resource = Content.get_by_id(6093630880088064, parent = key_parent)
Run Code Online (Sandbox Code Playgroud)

资源是 None

数据存储

Entity Kind       Content
Entity Key        ahBkZXZ-YnJhaW5ib290ZWNocigLEgdTdWJqZWN0GICAgICAxKkJDAsSB0NvbnRlbnQYgICAgIDE6QoM
ID                6093630880088064
Parent            ahBkZXZ-YnJhaW5ib290ZWNochQLEgdTdWJqZWN0GICAgICAxKkJDA
Subject:id=5249205949956096
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.我的目标是资源将是一个对象,我可以做一些事情resource.name来检索名称属性.

Pyl*_*nux 9

将密钥作为字符串时会出现此问题,最简单的解决方案是:

Model.get_by_id(int(id))
Run Code Online (Sandbox Code Playgroud)

当您从URL等读取id时,最有可能出现此问题:

class MyHandler(webapp2.RequestHandler):
    def get(self, id):
        instance = Model.get_by_id(int(id))
Run Code Online (Sandbox Code Playgroud)