【问题标题】:Get only the keys out of a reference property in GAE-Py仅从 GAE-Py 中的引用属性中获取键
【发布时间】:2011-01-05 18:48:54
【问题描述】:

我有一个应用程序,用于存储帖子及其作者。非常 直截了当,每篇文章都有一个作者模型。

问题是这样的:我使用一个调用获取最后 10 个帖子,使用 fetch() with limit = 10. 但是当我打印出来时,GAE 额外使用了 10 获取访问作者详细信息,因为作者对象是 帖子上的参考属性...一个经典的 n+1 查询 场景 - 1 个查询获得 10 个帖子,然后 10 个查询获得每个帖子 作者。

有什么方法可以遍历我的帖子以仅收集 作者对象键,所以我可以使用

一次性加载它们
db.get(all_author_keys)

【问题讨论】:

  • 请不要告诉我在帖子本身缓存作者详细信息...我已经想到了,但我不能这样做,因为作者详细信息不断变化,并且全部重写当作者的详细信息更改不适合我时,作者会发布。
  • 可以标记为stackoverflow.com/questions/2075951/…的副本

标签: python google-app-engine


【解决方案1】:

看看我几个小时前对this question 的回复——一个Q 几乎完全相同,这一个惊人的巧合,虽然来自不同的海报。

简而言之,要做到这一点,请使用Property 对象的get_value_for_datastore

【讨论】:

  • @Sudhir,作为 Q 的作者,您可以随时删除它——点击链接即可!
  • 不,我假设下一个有这个问题的人可能会以这种方式搜索它,使用“n+1”、“收集密钥”等术语。所以它可能应该留下并链接到另一个。
  • @Sudhir,顺便说一句,我只是好奇——为什么要接受而不是投票呢?这对 SO [[对我来说没什么大不了的,因为无论如何我每天都在最大限度地发挥代表作用;-) -- 我只是热衷于支持正常的 SO 礼仪或了解背离它的具体原因!-) .所以提前 tx 解释 why.]]
  • :) 没有确切的理由。回想起来,我已将答案标记为正确,但由其他人说他们是否认为这对我有好处。至少在我的脑海里。这就是为什么我对另一个问题的答案投了赞成票……我向他推荐这个答案,但我会留给其他人向我推荐这个答案。
猜你喜欢
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 2016-03-29
  • 2016-02-17
相关资源
最近更新 更多