第一次发布和新的谷歌应用引擎!
我不能为我的生活弄清楚为什么我使用Model.get_by_id访问对象的尝试不起作用。
我的测试数据已填充,我可以将输出验证为已注释。我可以在数据存储区查看器中确认数据的ID ...但尝试使用该ID无法返回该对象。
namespace_manager.set_namespace('myNamespace') for t in models.MyClass.all().fetch(100): print t.key().id() # prints the key and verified in the Datastore Viewer print t.date # prints the date myClassInstance = models.MyClass.get_by_id(t.key().id()) # never finds the object if tour is None: print "MyClass instance not found"
所以输出是
6 2012-04-24 20:47:13.537000 MyClass instance not found 27 2012-04-24 20:47:13.605000 MyClass instance not found 29 2012-04-24 20:47:13.611000 MyClass instance not found 31 2012-04-24 20:47:13.617000 MyClass instance not found
请注意,这不是root实体并且还有子节点......但是MyClass.get_by_id方法不应该返回正确的对象吗?
提前感谢!
答案 0 :(得分:3)
如果您使用父/祖先创建实体,则需要将其提供给get_by_id
函数。
entity = MyModel(parent = parentkey,
name = 'somename')
entity.put()
entity_by_id = MyModel.get_by_id(entity.key().id(), parent = parentkey)