更新:经过进一步测试,这个问题似乎影响了我的实体组中的所有子实体。所有这些不同实例的根父级是用户类型,这是我自己创建的,而不是内置的用户类型。从子 Kind 的构造函数中删除 parent=user 后,get_by_key_name 将按预期工作。但是,如果可能的话,我希望能够将实体组功能与定义的键一起使用。
-- 嗨,我正在尝试在我的 GAE 项目中使用定义的键名来加快查询速度。
但是,我遇到了一个奇怪的问题,我无法获取它们的密钥。此代码似乎不起作用:
for l in Logins.all().fetch():
print Login.get_by_key_name(l.key().name())
一些注意事项:
- 我只在 SDK 中测试过
l.key().name() 当我查看数据存储时,返回与实体一起列出的键名字符串。我可以将字符串从数据故事中复制并粘贴出来,并将其用作 get_by_key_name() 的参数,但这也不起作用。
Login 类型的键名都以“l”(即小写“L”)为前缀,否则都是小写的,可能包含下划线或破折号,但小于 500 个字节。
其他种类的 serches 喜欢这项工作。
- 关键是 Login 类型的 2 个属性的插值,我可以使用常规 .filter() 方法很好地获取对象
- 实例的“父级”是一个用户类。(提到以防这对我必须获取的方式有影响)
所以我不得不问,是否有任何明显的原因导致这不起作用?使用 SDK 进行键名搜索的任何已知问题?