如何有效地连接两个嵌套的ForiegnKey关系?

时间:2019-11-03 19:45:39

标签: python django django-models

在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中获得此信息?

1 个答案:

答案 0 :(得分:1)

您需要从Article开始。

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