Comment obtenir des valeurs du dictionnaire dans jinja quand la clé est une variable?
Je suis en train de récupérer les entrées d'un dictionnaire python dans jinja2, mais le problème est que je ne sais pas la clé que je veux accéder à l'avance - la clé est stockée dans une variable appelée s.course
. Donc mon problème est que j'ai besoin de double-remplacer cette variable. Je ne veux pas utiliser un for
boucle parce que cela va passer par le dictionnaire de manière plus que nécessaire. Voici une solution de contournement que j'ai créé, mais il est possible que le s.course
valeurs peuvent changer alors, évidemment, le codage en dur comme cela est mauvais. Je veux qu'il fonctionne essentiellement comme ceci:
{% if s.course == "p11" %}
{{course_codes.p11}}
{% elif s.course == "m12a" %}
{{course_codes.m12a}}
{% elif s.course == "m12b" %}
{{course_codes.m12b}}
{% endif %}
Mais je veux qu'elle ressemble à ceci:
{{course_codes.{{s.course}}}}
Merci!
source d'informationauteur tytk | 2013-09-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
course_codes.get(s.course)
:Il n'est pas nécessaire d'utiliser la notation par points, vous pouvez le faire:
Je suis en utilisant Jinja avec le Sel, et j'ai trouvé que quelque chose comme ce qui suit fonctionne bien:
Qui est, l'utilisation la plus prolixe
[ ]
de la syntaxe et de laisser les guillemets lorsque vous en aurez besoin d'utiliser une variable.