如何通过django中的多级反向外键获取相关对象查询集?

Max*_*ith 3 python django foreign-keys django-models django-queryset

我有一个这样的模型:

class Publisher(models.Model):
    ...

class Author(models.Model):
    publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)

class Article(models.Model):
    author= models.ForeignKey(Author, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

现在我试图从给定的出版商“pub”获取所有文章。我试过做以下事情:

pub.article_set()

pub.authot_set().article_set()

以及其他失败的尝试。那么如何在不多次访问数据库的情况下检索给定发布者的所有文章的查询集?最有效的方法是什么?

提前致谢!

arj*_*n27 5

减少数据库查询数量的最有效方法是过滤文章的查询集。

# pub is the instance of Publisher
articles = Article.objects.filter(author__publisher=pub)
Run Code Online (Sandbox Code Playgroud)