通过给定实体ID,我将按models = Model.get_by_id(id)
进行查询。但是,我发现有一段时间它不会收集结果。
是否有任何替代或推荐的方法可以通过Google App Engine中的实体ID进行查询,python?
答案 0 :(得分:5)
如果您使用父级保存类实例,则get_by_id将不会返回该对象,而是由于该键未完成的原因而返回None,因此也需要父键。我遇到了同样的问题,并且很难弄明白。
ico = Icons.get_by_id("3", parent = parentkey)
这将返回一个对象。 ; - )
答案 1 :(得分:3)
如果Model.get_by_id(id)
返回None
,则表示您提供的ID无效,而不是方法本身不可靠。
在系统中断的情况下,此方法可能会失败并不是不可思议,但如果确实如此,您的调用将抛出数据存储异常,而不是返回空结果。
答案 2 :(得分:1)
问题在2011-05-10之后自动消失,这是v1.5发布日期。不确定这个问题是否相关。
我没有更改任何代码,因为get_by_id()在这几天一直很好。此外,我添加了一个cron作业,每分钟运行一次get_by_id()并尝试使实例生效。
根据我的观察,get_by_id()失败,因为它无法查询数据存储区。
顺便说一下,数据存储区的设置是主/从复制。
答案 3 :(得分:0)
get_by_id()
始终获取对象。
id可以通过templat
中的object.key.id
获取
否则你总是拥有object.get(key).