2009-03-19 15 views

Répondre

15

réduire de python Utilisation() fonction:

import operator 
reduced_q = reduce(operator.or_, q_list) 
Model.objects.filter(reduced_q) 
+2

sérieusement. Je t'aime. MERCI. – Axel

+3

'reduce' n'est plus intégré dans Python 3, vous pouvez donc utiliser https://docs.python.org/3/library/functools.html#functools.reduce à la place. –

7

objets Q ont aussi une méthode add qui prend un autre objet Q et un connecteur Q (soit ET soit OU).

q_object = Q(xyz__isnull=True) 
q_object.add(Q(x__startswith='x'), Q.OR) 

J'ai trouvé cela utile lors de la construction ou les filtres et j'ai écrit un exemple plus sur mon blog: "Adding" Q objects in Django