使用Google App Engine模型查询ID

时间:2012-01-17 17:35:21

标签: python google-app-engine

我的数据存储区中有一个实体:

In [38]: i1
Out[38]: <my_app.models.Infospot at 0x4255a90>

In [39]: i1.key().id()
Out[39]: 162L

但我无法根据其ID进行查询:

In [41]: Infospot.get_by_id(162L) is None
Out[41]: True

In [45]: Infospot.get(Key.from_path('Infospot', 162L)) is None
Out[45]: True

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您的Infospot实体似乎可能是子实体。实体由其类型,ID及其所有父项唯一标识,因此尝试将其作为根实体获取将不起作用。

您可以通过打印i1.key()的值来验证是否属于这种情况;如果它看起来像datastore_types.Key.from_path(u'Something', 123L, 'Infospot', 162L),则表明该实体是实体Something的实体的子项。