Django filter queryset __in для * каждого * элемента в списке

Допустим, у меня есть следующие модели

class Photo(models.Model):
    tags = models.ManyToManyField(Tag)

class Tag(models.Model):
    name = models.CharField(max_length=50)

В представлении у меня есть список с активными фильтрами, который называется категориями . Я хочу отфильтровать фотообъекты, все теги которых присутствуют в категориях .

Я пробовал:

Photo.objects.filter(tags__name__in=categories)

Но это соответствует любому элементу в категориях, а не всем элементам.

Итак, если будут категории ['праздник', 'лето], я хочу, чтобы фотографии были отмечены как праздником, так и летом.

Можно ли этого достичь?

89
задан Sander van Leeuwen 23 February 2012 в 13:25
поделиться