I\'m constructing some Django filter queries dynamically, using this example:
kwargs = { \'deleted_datetime__isnull\': True }
args = ( Q( title__icontains =
firstQ = [
Q(...),
Q(...),
Q(...)
]
import functools
functools.reduce(lambda a, b: a & b, Qrelationship)
Or in my case, I needed to AND to different sets of filters:
firstQ = [
Q(...),
Q(...),
Q(...)
]
secondQ = [
Q(...),
Q(...),
Q(...)
]
import functools
combined = functools.reduce(lambda a, b: a | b, [
functools.reduce(lambda a, b: a & b, firstQ),
functools.reduce(lambda a, b: a & b, secondQ)
])
myqueryset = Model.objects.filter(combined)
# Make sure you apply the Q's first (BEFORE any other filter) or it will fail silently