2つの変数{{ profile }}
値 "test"および{{ element.author }}
値「test」で再度。 jinja2では、ifを使用してそれらを比較しようとすると、何も表示されません。私は次のように比較を行います:
{% if profile == element.author %}
{{ profile }} and {{ element.author }} are same
{% else %}
{{ profile }} and {{ element.author }} are **not** same
{% endif %}
出力を取得しますtest and test are not same
何が問題なのですか、どうすれば比較できますか?
私は同じ問題を抱えています。整数値を持つ2つの変数が同じ値である場合、それらは等しくありません。
これを何らかの方法で機能させる方法はありますか?また、str()== str()またはint()== int()を使用しようとしましたが、常に未定義のエラーがあります。
[〜#〜]更新[〜#〜]
見つかった解決策:{{ var|string() }}
または{{ var|int() }}
などのフィルタを使用するだけ https:// stackoverflow .com/a/19993378/1232796
ドキュメンテーションを読むそれはここにあります http://jinja.pocoo.org/docs/dev/templates/#list-of-builtin-filters
あなたの場合あなたがしたいでしょう
{% if profile|string() == element.author|string() %}
{{ profile }} and {{ element.author }} are same
{% else %}
{{ profile }} and {{ element.author }} are **not** same
{% endif %}
profile
およびelement.author
は同じ型ではないか、等しくありません。ただし、文字列に変換すると、同じ値が出力されることがあります。それらを正しく比較するか、それらのタイプを同じになるように変更する必要があります。
Jinja2が利用できる多くの テストに組み込まれています の1つを使用して、変数のタイプを確認できます。たとえば、string()
またはnumber()
です。私は同じ問題を抱えていて、それがタイプだと気づきました。