Le 10/12/2012 14:32, David Larlet a écrit :
Le 10 déc. 2012 à 14:24, Nicolas Steinmetz <[email protected]> a écrit :
Cherchant à rationnaliser différentes bases de codes, j'ai commencé à migrer 
une app de gestion de marks en Flask/MongoDB vers Django/Postgres. Comme il y a 
des tags aux marks, je ne me suis tourné vers django-taggit mais je n'aurais 
peut être pas du.

En effet, lors d'une recherche multi tags, il fait du OR au lieu de AND et sauf 
erreur, il ne sait pas le gérer. Avant que je désosse tout, je me suis dit que 
la sagesse populaire de django-fr pourrait me remettre sur le bon chemin.
Hello Nicolas,

Je te conseille de regarder du côté des Q objects pour ça : 
https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

Bonne journée,
David

_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django
Oui c'est bien meilleur en effet :

   from djqmixin import Manager, QMixin

   from django.db.models import Q

            class MarkQMixin(QMixin):
                def exact_in(tags):
                    tag_list = Q()
                    for tag in tags:
                        tag_list = tag_list | Q(tag_name__exact=tag)
                    return self.filter(tag_list)

ça me semble bien meilleur comme ça avec une seule requête plutôt qu'une par tag.

_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à