GAE Python - get_by_key_name 没有结果 - 可能是父问题?

GAE Python - get_by_key_name no result - maybe Parent issue?

我使用简单的 Model.get_by_key_name('item_key') 从数据存储中检索项目。这一切在今天之前都运行良好,而现在查询正在返回 None,尽管我可以确认存在具有该键名的现有实体。

据我所知,我今天对模型所做的唯一更改是在创建时添加父项。我对parent/ancestor不是很熟悉。这会影响我调用实体的方式吗?我还可以尝试找出造成这种情况的原因吗?

确实,根据 https://cloud.google.com/appengine/docs/python/datastore/modelclass#Model_get_by_key_name ,必须告知 get_by_key_name 函数有关父项的信息(如果有的话)——父项更改商店中使用的实际密钥。

具体签名为:

Model.get_by_key_name (key_names, parent=None)

(您实际上可以传递多个键名,只要实体具有相同的父项即可)。默认值是 parent=None,当您在没有 父实体的情况下获取实体 时,它会起作用——但现在父实体在那里,必须在调用中指定它。

密钥包括实体的种类(此处由您调用方法的 Model 的特定子类提供)、id 或名称、父级和命名空间(无需担心最后一点,除非您明确使用名称空间:-).