أنا أستخدم 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 | round
كـ x / (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
نفس المشكلة ، نفس الحل. في حالتي ، كان في Home Assistant حيث انتهى بي الأمر بـ:
{{ ((states.input_number.guestroom_setpoint_shift.state | float) * 2) | int }}
شكرا!
التعليق الأكثر فائدة
تخميني سيكون أسبقية المشغل. تم تحليل
x/2 | round
كـx / (2 | round)