python - 如何从父实体获取后代

标签 python google-app-engine

我似乎无法找到有关如何让数据存储后代获得对父实体的引用的快速答案。这是一个简单的示例:

# a person who has pets
john=Person(**kwargs)

# pets
fluffy=Pet(parent=john, ...)
rover=Pet(parent=john, ...)

# lengthy details about john that are accessed infrequently
facts=Details(parent=john, ...)
  1. 如何使用 john 或 john 的 key 获取 fluffy、rover 和facts 的 key ?
  2. 通过 john(或 key),我可以获取事实的 key/entity(不是 Rover、fluffy)吗?

最佳答案

您想使用 ancestor filter :

kid_keys = db.Query(keys_only=True).ancestor(john).fetch(1000)

您可以通过指定事实类型来获取事实:

facts_key = db.Query(Details, keys_only=True).ancestor(john).get()

使用 get() 而不是 fetch() 假定 john 只有一个 Details 子级。如果不是这样,请调用 fetch 来获取全部内容。

关于python - 如何从父实体获取后代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471054/

相关文章:

java - 如何读取 blob 的内容并将其写入 GAE 数据存储 (Java)

返回比 Linux `wc -l` 高得多的行数的 Python 代码

python - scikit-learn 中 predict_proba 的输出

python - 直接保存时,Matplotlib 无法正确渲染曲线下的渐变

python - 如何使用 Python 检查用户是否存在于 GNU/Linux 操作系统中?

google-app-engine - 谷歌应用引擎 : Quota Error

java - 如何使 java 准备语句像大查询的查询或如何在大查询中转义参数

java - 关于开发基于AppEngine的ERP软件

python - 在 ruby​​ 中使用其他语言

java - 是否可以在谷歌应用引擎上部署 cakephp 应用程序?