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()

Это должно сделать то, что я понял из вашего вопроса.

Вернуться на верх