Django Queryset + поиск всех объектов, имеющих ВСЕ значения в массиве в отношениях "многие-ко-многим
Я здесь жестко кодирую, но в действительности этот массив может иметь от 1 до 99 значений
looking_for = ['blue', 'red', 'green']
objects = MyObj.objects.filter(colors__name__in=looking_for)
даст мне все объекты, которые имеют ОДИН из цветов в ['blue', 'red', 'green'
]
Но мне нужны объекты, которые имеют ВСЕ цвета объектов с именами, указанными в массиве. Я хочу AND
, а не OR
. Не смог найти как это сделать. есть идеи?
** ОБНОВЛЕНИЕ **
Я смог найти решение.
objects = MyObj.objects.all()
for l in looking_for:
objects = objects.filter(colors__name__in=l)
в результате objects
будут только те, у кого есть все 3 цветовых объекта, как указано в массиве.