Sometimes in Dango you need to compose query with several `Q(query) & Q(other_query) &...` and the number of such queries changes dynamically. Here is a quick example how to solve it:
import operator ids = [1, 2, 3] queries = [Q(some_m2m_relation__pk=pk) for pk in id] result = SomeModel.objects.filter( reduce(operator.and_, queries) )