Jinja2 pour une boucle avec des conditions
J'ai une structure de données similaire à
data = {{'value': 1, 'state': False},
{'value': 2, 'state': True}}
Où l'état et la valeur change en fonction de conditions extérieures.
Je veux utiliser un Jinja2 pour ... autre boucle avec des conditions, comme
{% for item in data where item.state == True %}
{{ item.value }}
{% else %}
no true items
{% endfor %}
- Je utiliser la structure de données dans de multiples endroits, et parfois tout ce qui doit être affiché. J'aimerais ne garder qu'une seule copie de la structure, et ont le Jinja2 modèle de prendre soin de soit en affichant les éléments de l'état == True ou un message qu'il n'y a pas de tous les éléments, plutôt que d'avoir à pré-traiter en Python avant de le donner au modèle, ou le fractionnement de la structure en plusieurs morceaux.
C'est en cours d'exécution sur Google App Engine avec Python 2.7 et Jinja2 2.6, et la structure des données est soutenu par memcache.
OriginalL'auteur Carson Morrow | 2012-09-29
Vous devez vous connecter pour publier un commentaire.
Est-ce que vous cherchez:
Ohh, j'ai mis à jour la réponse maintenant.... il sera en boucle sur les éléments de l'élément.le statut est Vrai et impression", pas vrai les éléments " si aucune itération.
Hein. Je pensais que je l'avais essayé, mais ça fonctionne. Merci!
OriginalL'auteur Arsh Singh
Je recommanderais de regarder Accéder aux attributs globaux de l'intérieur d'une macro dans Jinja2 et si vous utilisez la Fiole de les regarder de modèle de contexte processeurs. Pour ce que sa vaut, ce que je fais (en Flacon), est de créer les variables d'instance qui font partie de l'instance de l'application, je ne vois pas pourquoi vous ne pouvez pas faire la même chose avec le Jinja2 de l'environnement. En d'autres termes, l'ajouter à votre dictionnaire à Jinja2 de l'environnement, et de vérifier ce que (le cas échéant) est nécessaire pour la rendre disponible dans le modèle.
OriginalL'auteur jeff.vanvoorst