2017-10-22 8 views
1

m2mフィールドのモデルが与えられた場合、Articleに複数のAuthorsがあるとします。 著者のセットが別のセットのサブセットであるすべての記事を取得する最も効率的な方法は何ですか?Django many2manyは別のセットのサブセットです

class Article(models.Model): 
    authors = models.ManyToManyField('Author') 

は、1またはこのリスト内の著者の多くが書かれていたが、このリストの一部ではない任意の著者を持っていないすべての記事を取得します。 'トム' によって書かれた記事が一致し

authors_list = ['Tom', 'John', 'Sara', 'Kati'] 
  • 'Tom'と 'Sara'の記事は一致します。
  • しかし、 'Tom'と 'Alter'によって書かれた記事は一致しません。
+0

あなた 'author'のモデルは似ていませんか?どのようなアプローチを試みましたか?応答のために –

答えて

1

あなたの著者モデルの詳細を知らなくても、これは単なる推測ですが、この一般的なアプローチは動作するはずです:

authors = Author.objects.filter(first_name__in=authors_list) 
others = Author.objects.exclude(first_name__in=authors_list) 
queryset = Article.objects.filter(authors__in=authors) 
queryset = queryset.exclude(authors__in=others) 
+0

ありがとう。 –

関連する問題