Il peut arriver que l’on est besoin de passer à ses templates des données sous la forme de tuple. Mais comment dans le template, récupéré les données qui sont dans le tuple ?
Question importante s’il en est.
Je vous rassure tout de suite, là réponse n’est pas ‘construire une classe qui sert à rien pour pouvoir faire instance.nom_donneée_membre. ‘
Il y en en fait deux méthodes.
Méthode 1
on peut unpack (désolé je n’ai pas trouvé de traduction françaises pour unpack) les tuples en utilisant la notation .NumeroChamp. Petit exemple :
{% for tuple in tuples %}
{{ tuple.0 }} {{ tuple.1}} {{ tuple.2 }}
{% endfor %}
C’est déjà pas mal, mais c’est peu lisible. Il y a donc mieux, la méthode 2.
Méthode 2
Celle ci permet d’unpack directement vos tuples dans la boucle for, en donnant un nom à chaque variable. Dans ce cas là, il faut donc que chaque tuple est la même structure.
Imaginons par exemple que l’on construit des liens à la volée, avec des tuples qui contiendraient deux champ, l’url et le nom du lien, on aurait donc :
<a href="{{url}} "> {{name}}</a>
{% endfor %}
Plutôt sympa non ?
One Response to “Unpacking de tuples dans les templates django”
Sorry, the comment form is closed at this time.
Il y a quelque chose de très similaire en Ruby aussi. C’est vrai que c’est très pratique.