のは、私は、次のDjangoのモデルを持っているとしましょう:2つのManyToManyフィールドをDjangoクエリと交差させる方法は?
class A(models.Model):
keywords = models.ManyToManyField(Keyword)
class B(models.Model):
keywords = models.ManyToManyField(Keyword)
私はオブジェクトがあります。私は、Bオブジェクト内のいくつかのキーワードがAオブジェクト内のいくつかのキーワードと同じであるすべてのBオブジェクトを探したい。
このクエリを作成する正しい方法は何ですか? a
がA
のインスタンスである場合
この結果、複数の単一のクエリ、またはデータベースへの1つの結合クエリが発生しますか? – ModulusJoe
1つのクエリのみ。 Djangoシェルの 'print Blog.objects.filter(keywords__in = Keyword.objects.filter(articles = article))。query'で確認できます。 –
私は実際には、SET GLOBAL general_log = 'ON'を使用して、最後にクエリをログオンするようにしました。 しかし、.queryのトリックは非常に便利になるだろう。ありがとう – ModulusJoe