我的数据存储区中有一个实体:
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
我做错了什么?
答案 0 :(得分:4)
您的Infospot
实体似乎可能是子实体。实体由其类型,ID及其所有父项唯一标识,因此尝试将其作为根实体获取将不起作用。
您可以通过打印i1.key()
的值来验证是否属于这种情况;如果它看起来像datastore_types.Key.from_path(u'Something', 123L, 'Infospot', 162L)
,则表明该实体是实体Something
的实体的子项。