【问题标题】:Django accessing reverse foreign key data in values objectDjango 访问值对象中的反向外键数据
【发布时间】:2014-06-12 18:41:52
【问题描述】:

我构建一个 CMS 是为了好玩,但是在查询给定帖子的资源时,我被困在 django 中。

我有以下代码做我想做的事:

data = list(Post.objects.filter(topic__name=topic_name).values())
for d in data:
    d["resources"] = list(Resource.objects.filter(post=d["id"]).values())

问题在于,在 1 个查询中选择具有主题的帖子列表后,它会为每个资源列表再创建 1 个查询。有没有更有效的方法将资源字典放入每个帖子?

【问题讨论】:

    标签: python django postgresql orm


    【解决方案1】:

    只需使用prefetch_related

    posts = Post.objects.filter(topic__name=topic_name).prefetch_related('resources') # resources is the related_name defined for Post in Resource model
    

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2019-12-01
      • 2018-03-13
      • 2020-12-27
      • 2020-06-22
      • 2018-01-02
      相关资源
      最近更新 更多