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