Vous n'êtes pas identifié(e).
bonjour
je fais le filtrage suivant pour trouver certains materiaux
units1= Essai_Temperature.objects.filter(Q(val_champ__icontains = val_TT) & Q(val20__lte=val_max ))
units2= Essai_Temperature.objects.filter(Q(val_champ__icontains = val_TT) & Q(val10__gte=val_min ))
units3 = units1 | units2
le probleme est qu'a la fin units3 va contenir (par exemple) 9 fois le materiau 1, 4 fois le materiau 2 etc....
est ce normal d'avoir des doublons ?
Hors ligne
Bonjour,
Oui car vous n'avez pas précisez que vous vouliez un retour de valeurs
uniques. Vous avez demandé les valeurs qui correspondent à vos
critères, et la même entrée peut correspondre plusieurs fois à ce
critère.
Utilisez distinct() pour limiter les doublons.
Par ailleurs:
- vous n'avez pas besoin d'un Q object ici: filter(val_champ__icontains
= val_TT, val10__gte=val_min) fonctionnera parfaitement.
- la convention de nommage Python est de ne pas mettre de "_" pour les
classes (donc EssaiTemperature) et de ne mettre que des minucules aux
variables (donc val_tt).
- je ne sais pas si units1 et units2 vont être lus ou non, mais si non,
dans ce cas on peut obtenir units3 en une seul requête en utilisant
l'opérateur | directement sur les Q objects.
Le ven. 13 juil. 2012 09:49:38 CEST, sesame a écrit :
> bonjour
>
> je fais le filtrage suivant pour trouver certains materiaux
>
> units1= Essai_Temperature.objects.filter(Q(val_champ__icontains = val_TT)
> & Q(val20__lte=val_max ))
> units2= Essai_Temperature.objects.filter(Q(val_champ__icontains = val_TT)
> & Q(val10__gte=val_min ))
>
>
> units3 = units1 | units2
>
> le probleme est qu'a la fin units3 va contenir (par exemple) 9 fois le
> materiau 1, 4 fois le materiau 2 etc....
>
> est ce normal d'avoir des doublons ?
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
Hors ligne
merci beaucoup de votre aide
Hors ligne