興味深い問題があります。
私は3つのオブジェクトを持っています。すべて同じ
class Articles(models.Model):
owner = models.ForeignKey(Author)
tags = models.ManyToManyField('Tag')
class Tag(models.Model):
name = models.CharField(max_length=255)
だから私は3つの記事を持っています。すべて同じタグ: 'tag1' と 'tag2'
そして、私は質問があります
actionsAll = Articles.objects.filter((Q(tags__name__exact="tag1") | Q(tags__name__exact="tag2"))).distinct()
これにより、すべての記事が表示されます。両方のタグがあるため、各記事を 2 回収集するため、distinct() なしで 6 つの記事を返します。
ただし、このクエリでは:
actionsAll = Articles.objects.filter((Q(tags__name__exact="tag1") & Q(tags__name__exact="tag2"))).distinct()
これは私に記事を与えません。記事には両方のタグが含まれているため、それらすべてを返す必要がありますか?