首页 > 解决方案 > 如何有效地连接两个嵌套的 ForiegnKey 关系?

问题描述

在 Django 2.2 模型中,我有以下设置:

class Kiosk(Model):
    newspapers = ForeignKey('Newspaper')

class Newspaper(Model):
    articles = ForeignKey('Article')

class Article(Model):
    pass

现在,我可以像这样在售货亭出售一份报纸的所有文章:

kiosk = Kiosk.objects.first()
articles = kiosk.newspapers.first().articles

我想要做的是获得一个 QuerySet(或 RelatedManager),涵盖信息亭出售的所有报纸上的所有文章。

我当然可以通过遍历报纸并在 for 循环中连接文章列表来实现这一点,但这似乎效率低下。

我怎样才能从 ORM 得到这个?

标签: pythondjangodjango-models

解决方案


您需要从文章开始。

articles = Article.objects.filter(newspaper__kiosk=my_kiosk)

推荐阅读