0

第一次发布和新的谷歌应用引擎!

我一生都无法弄清楚为什么我尝试使用 Model.get_by_id 访问对象不起作用。

我的测试数据已填充,我可以验证评论的输出。我可以在数据存储查看器中确认数据的 ID...但尝试使用该 ID 无法返回对象。

    namespace_manager.set_namespace('myNamespace')

    对于模型中的 t.MyClass.all().fetch(100):
        print t.key().id() # 打印密钥并在数据存储查看器中验证
        print t.date # 打印日期

        myClassInstance = models.MyClass.get_by_id(t.key().id()) # 永远找不到对象
        如果游览是无:
            打印“未找到 MyClass 实例”

所以输出是

    6
    2012-04-24 20:47:13.537000
    未找到 MyClass 实例
    27
    2012-04-24 20:47:13.605000
    未找到 MyClass 实例
    29
    2012-04-24 20:47:13.611000
    未找到 MyClass 实例
    31
    2012-04-24 20:47:13.617000
    未找到 MyClass 实例

请注意,这不是根实体,也有子实体......但 MyClass.get_by_id 方法不应该返回正确的对象吗?

提前致谢!

4

1 回答 1

3

如果您使用父/祖先创建实体,您也需要将其提供给get_by_id函数。

entity = MyModel(parent = parentkey,
                 name   = 'somename')
entity.put()

entity_by_id = MyModel.get_by_id(entity.key().id(), parent = parentkey)
于 2012-04-24T22:00:30.890 回答