13

{{ profile }}値が「test」で、値が「test」の2 つの変数があると{{ element.author }}します。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 sameWhats wrong, どうすれば比較できますか?

4

4 に答える 4

20

私は同じ問題を抱えています.整数値を持つ2つの変数は、それらが同じ値である場合、同じではありません.

これを何らかの方法で機能させる方法はありますか。str() == str() または int() == int() も使用しようとしましたが、常に未定義のエラーが発生します。

アップデート

見つかった解決策:{{ var|string() }}またはhttps://stackoverflow.com/a/19993378/1232796 などのフィルターを使用するだけです{{ var|int() }}

ドキュメントを読むと、ここにあります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 %}
于 2015-04-10T10:15:27.467 に答える
2

profileelement.authorは同じ型ではないか、そうでなければ等しくありません。ただし、文字列に変換すると、たまたま同じ値が出力されます。それらを正しく比較するか、型を同じになるように変更する必要があります。

于 2012-09-27T20:14:34.593 に答える