sto costruendo alcune query di filtro Django in modo dinamico, using this example:Costruire filtro query Django in modo dinamico con args e kwargs
kwargs = { 'deleted_datetime__isnull': True }
args = (Q(title__icontains = 'Foo') | Q(title__icontains = 'Bar'))
entries = Entry.objects.filter(*args, **kwargs)
io non sono solo sicuro di come costruire la voce per args
. Dire che ho questa matrice:
strings = ['Foo', 'Bar']
Come faccio ad arrivare da lì:
args = (Q(title__icontains = 'Foo') | Q(title__icontains = 'Bar')
Il più vicino che può ottenere è:
for s in strings:
q_construct = Q(title__icontains = %s) % s
args.append(s)
Ma non so come impostare la condizione |
.
su un lato nota, 'reduce' è ora' functools.reduce' in Python 3 https://docs.python.org/3.0/library/ functools.html # functools.reduce – wasabigeek