Django-fr

Forum

#1 08-12-2011 18:23:49

sesame
Membre
Inscription : 22-03-2011
Messages : 263

boucle filtrage

bonjour

j'ai la boucle suivante

{% for i in resultat %}
{{i }}
{% endfor %}

avec resultat : [30, 25, 28, 40, 35, 37, 60, 42, 44]

je voudrai que si {{i }} vaut 40 afficher 35 et 37
si {{i }} vaut 60 afficher 42 et 44

y a t'il un moyen simple de faire le test dans la boucle ?

Hors ligne

#2 08-12-2011 23:24:26

Sébastien Cheminel
Membre
Inscription : 08-12-2011
Messages : 12

Re : boucle filtrage

bonjour,

je voudrais pas rentrer dans la case :
"dis moi ce que tu veux, je te dirai comment t'en passer"
mais je vais le faire quand même.

Ce qui me plait avec django, c'est que la simplicité du templatage de
django est une force.

Je travaille beaucoup en java/jsp et les possibilités trop complexes
du jsp donnent soivent des templates imbitables.

vous pouvez peut-être faire cela en template.
Je vous conseille cependant de prémacher le travail en python.

Librement,
Sébastien.

Le 08/12/11, sesame<pat.100 _AT_ hotmail.fr> a écrit :
> bonjour
>
> j'ai la boucle suivante
>
> {% for i in resultat %}
> {{i }}
> {% endfor %}
>
> avec resultat : [30, 25, 28, 40, 35, 37, 60, 42, 44]
>
> je voudrai que si {{i }} vaut 40 afficher 35 et 37
> si {{i }} vaut 60 afficher 42 et 44
>
> y a t'il un moyen simple de faire le test dans la boucle ?
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#3 09-12-2011 09:41:09

quinode
Membre
Lieu : Auvergne
Inscription : 14-10-2010
Messages : 89
Site Web

Re : boucle filtrage

comme dit sebastien ce genre de logique doit se faire dans les view.
Après tu peux toujours tordre django tant que tu veux, mais sachant que tu sors de la philosophie "le template est juste là pour afficher", ne t'etonne pas de ne pas trouver les outils.

je connais pas ta logique, mais en gros si ta view construisait aurement "resultat", par exemple  :

    test = ( (30,(25,28)), (40,(35, 37)), (60,(42,44)) )

           {% for r in test %}
           {{r.0}} donc afficher  {{ r.1.0 }} et {{r.1.1}}<br/>
           {% endfor %}

J'utilise le fait qu'on peut appeler dans le template un élément de liste à partir de son numéro d'index.
Mais tu peux rendre ça plus explicite avec des dict 

         test = { 'premier_chiffre':30, 'valeurs':(25,28) }

         {{test.premier_chiffre}} donc afficher  {{ test.valeurs.0 }} et {{test.valeurs.1}}<br/>

Hors ligne

#4 11-12-2011 05:51:14

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : boucle filtrage

merci, le plus dur c'est la logique de django, tout est simple après...

Hors ligne

#5 16-12-2011 12:47:43

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : boucle filtrage

la solution n'est pas dans python mais dans le javascript et ca marche

Hors ligne

Pied de page des forums