comparer deux variables dans le modèle jinja2
Donné que j'ai deux variables {{ profile }}
avec une valeur de "test" et {{ element.author }}
à nouveau avec la valeur "test". Dans jinja2 quand j'essaie de les comparer à l'aide d'un si, rien ne s'affiche. Je fais la comparaison, comme suit:
{% if profile == element.author %}
{{ profile }} and {{ element.author }} are same
{% else %}
{{ profile }} and {{ element.author }} are **not** same
{% endif %}
Je obtenir la sortie test and test are not same
Quoi de mal, comment peut-on comparer?
Essayez d'entrer une valeur de: {{ [profil de l'élément.auteur] }}
Accidentellement posté. Cette expression devrait prendre la représentation de variables.
Accidentellement posté. Cette expression devrait prendre la représentation de variables.
OriginalL'auteur user1629366 | 2012-09-27
Vous devez vous connecter pour publier un commentaire.
J'ai le même problème, les deux variables ayant une valeur entière n'est pas égal à la même quand ils sont de la même valeur.
Est-il possible de faire ce travail en quelque sorte.
Aussi essayé d'utiliser str() == str() ou int() == int (), mais il y a toujours une erreur undefined.
Mise à JOUR
Trouvé La Solution:
Simplement utiliser des filtres tels que
{{ var|string() }}
ou{{ var|int() }}
https://stackoverflow.com/a/19993378/1232796
La lecture de la doc il peut être trouvé ici http://jinja.pocoo.org/docs/dev/templates/#list-of-builtin-filters
Dans votre cas, vous voulez faire
OriginalL'auteur tgdn
profile
etelement.author
ne sont pas du même type, ou autrement ne sont pas égaux. Cependant, ils ne se produisent à la sortie de la même valeur lors de la conversion d'une chaîne de caractères. Vous devez correctement les comparer ou de modifier leurs types pour être le même.Peut-être:
str(profile) == str(element.author)
? Sans connaître tous les types et d'autres choses à propos de vos données et de code, je ne peux pas dire.OriginalL'auteur mjibson
Vous pouvez vérifier les types des variables à l'aide de l'un des nombreux construit dans les tests que jinja2 est disponible. Par exemple
string()
ounumber()
. J'ai eu le même problème et j'ai réalisé que c'était des types.OriginalL'auteur mazzi