我有一个奇怪的问题。
我有 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()
这给了我所有的文章。它将返回 6 篇没有 distinct() 的文章,因为它会收集每篇文章 2x,因为它们都有两个标签。
但是,使用此查询:
actionsAll = Articles.objects.filter((Q(tags__name__exact="tag1") & Q(tags__name__exact="tag2"))).distinct()
这给了我没有文章。由于文章包含两个标签,它应该全部返回它们不应该吗?