Le modèle Jinja2 ne rend pas correctement l'instruction if-elif-else
Je suis en train de définir la couleur du texte à l'aide de css dans un jinja2 modèle. Dans le code suivant, je veux la chaîne de sortie pour imprimer dans un domaine spécifique de la couleur de la police si la variable contient une chaîne de caractères. Chaque fois que le modèle est généré si elle imprime en rouge en raison de l'instruction else, il ne voit jamais les deux premières conditions, même si la sortie doit être mis en correspondance, je peux dire que la sortie de la variable, c'est quand la table génère et il est comme prévu. Je sais que mon css est correct en raison de l'impression de la chaîne en rouge par défaut.
Ma première pensée a été de placer la chaîne j'ai été vérifier dans les citations, mais cela ne fonctionne pas. À côté était que jinja n'était pas en expansion RepoOutput[RepoName.index(repo)]
mais pour la boucle ci-dessus, il fonctionne, RepoName
est élargi correctement. Je sais que si j'ajoute les accolades, il permet d'imprimer la variable dont je suis assez certain que ce seront soit casser le modèle ou tout simplement pas travailler.
J'ai essayé de regarder ces sites et est allé par le biais de la liste mondiale des expressions en tant que bien, mais impossible de trouver des exemples similaires à la mienne ou une direction dans laquelle chercher plus loin.
http://jinja.pocoo.org/docs/templates/#if
http://wsgiarea.pocoo.org/jinja/docs/conditions.html
{% for repo in RepoName %}
<tr>
<td> <a href="http://mongit201.be.monster.com/icinga/{{ repo }}">{{ repo }}</a> </td>
{% if error in RepoOutput[RepoName.index(repo)] %}
<td id=error> {{ RepoOutput[RepoName.index(repo)] }} </td> <!-- I want this in green if it is up-to-date, otherwise I want it in red -->
{% elif Already in RepoOutput[RepoName.index(repo) %}
<td id=good> {{ RepoOutput[RepoName.index(repo)] }} </td> <!-- I want this in green if it is up-to-date, otherwise I want it in red -->
{% else %}
<td id=error> {{ RepoOutput[RepoName.index(repo)] }} </td> <!-- I want this in green if it is up-to-date, otherwise I want it in red -->
</tr>
{% endif %}
{% endfor %}
Grâce
source d'informationauteur Matty
Vous devez vous connecter pour publier un commentaire.
À tester si les valeurs de la variables
error
etAlready
sont présents dansRepoOutput[RepoName.index(repo)]
. Si ces variables n'existent pas alors un objet non défini est utilisé.À la fois de votre
if
etelif
les tests sont faux; il n'y a pas d'objet non défini dans la valeur de RepoOutput[RepoName.index(repo)].Je pense que vous avez voulu tester si certaines chaînes sont dans la valeur à la place:
D'autres corrections que j'ai faites:
{% elif ... %}
au lieu de{$ elif ... %}
.</tr>
tag de laif
conditionnelle de la structure, il doit être là, toujours.id
attributNoter que la plupart probablement vous souhaitez utiliser un
class
attribut au lieu de cela ici, pas unid
cette dernière doit avoir une valeur qui doit être unique dans votre document HTML.Personnellement, j'avais fixé la valeur de catégorie ici et de réduire la duplication, un peu: