2017-09-06 1 views
0

私は一種のモデルを持っている:djangoで複数の逆引き外接系を介して関連するオブジェクトのクエリーセットを取得する方法は?

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) 

今、私は与えられた出版社パブ」からすべての記事を取得しようとしています。 。

pub.article_set()

pub.authot_set()article_set()

だけでなく、他の障害が発生したtentatives: は、私は、次の操作を実行しようとしました。では、データベースに何度もぶつかることなく、特定のパブリッシャーのすべての記事のQuerysetを取得するにはどうすればよいですか?最も効率的な方法は何ですか?

ありがとうございます!

答えて

2

データベースクエリの数を減らす最も効率的な方法は、記事のクエリセットをフィルタリングすることです。

# pub is the instance of Publisher 
articles = Article.objects.filter(author__publisher=pub) 
関連する問題