Jinja: buitinフィルター `round`と` int`は機能しません

作成日 2013年11月14日  ·  4コメント  ·  ソース: pallets/jinja

Jinja2 == 2.7.1を使用しています

In [2]: t = jinja2.Template("{{ x/2 | round }}") #does not work?

In [3]: t
Out[3]: <Template memory:161e910>

In [4]: t.render(x=7)
Out[4]: u'3.5'

In [5]: t2 = jinja2.Template("{{ x | float }}") # float works

In [6]: t2.render(x=3)
Out[6]: u'3.0'

In [12]: t3 = Template("{{ x / 2 | int }}") # does not work

In [13]: t3.render(x=7)
Out[13]: u'3.5'

最も参考になるコメント

私の推測では、演算子の優先順位です。 x/2 | roundx / (2 | round)として解析されます

全てのコメント4件

私の推測では、演算子の優先順位です。 x/2 | roundx / (2 | round)として解析されます

はい、あなたは正しいです、
ありがとう

In [6]: t = jinja2.Template("{{ (x/2) | int }}")

In [7]: t.render(x=5)
Out[7]: u'2'

これに関連しているようですhttps://github.com/mitsuhiko/jinja2/issues/119

正確な問題に遭遇しました!
@hvnsweeting@Naddiseoに感謝します

同じ問題、同じ解決策。 私の場合、それは私が最終的に得たホームアシスタントにありました:
{{ ((states.input_number.guestroom_setpoint_shift.state | float) * 2) | int }}
ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価