Django Фильтр строк по полю ManyToManyField так, чтобы все m2m были подсписком списка
У меня есть список [1,2,3,4] и модель django с полем manytomany id
Если id
может содержать [1,2,3] или [1,5]
Как вернуть объекты, содержащие подстроку из моего списка [1,2,3,4] и не содержащие ничего за пределами этого списка [1,5].
Я видел такое Django filter queryset __in for *every* item in list. Но я хочу вернуть только подстроку
authors = ['Neil Gaiman', 'Terry Pratchett', 'Lisa Lutz']
query = Q()
for author in authors:
query |= Q(authors__name__icontains=author)
books = Book.objects.filter(query).distinct()
Это должно сделать то, что я понял из вашего вопроса.