У меня есть любопытная проблема.
У меня есть 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 статей без отдельного(), поскольку он будет собирать каждую статью 2x, поскольку у них есть оба тега.
Однако с этим запросом:
actionsAll = Articles.objects.filter((Q(tags__name__exact="tag1") & Q(tags__name__exact="tag2"))).distinct()
Это не дает мне никаких статей. Поскольку в статьях содержатся оба тега, он должен возвращать их все, не так ли?