Округление в jinja2 скобки

Я думаю, как правило, мне интересно, какие операции допустимы в скобках jinja2, например, что я пытаюсь сделать, это выполнить операцию со встроенными данными, например:

{{ round(255*(mileage['chevy'] - mileage['ford']))/1000 }}

Это вызывает ошибку при трассировке:

UndefinedError:' round ' не определено

аналогично, когда я пытаюсь использовать " abs " в заключенном в скобки блоке jinja, я получаю неопределенную ошибку, хотя они оба являются стандартными функциями lib. Есть ли способ выполнять эту операцию во время отрисовки шаблона, а не перед передачей данных?

1 ответов


язык шаблонов jinja2 отличается от языка python. В jinja2 операция над значениями часто выполняется во время фильтров:{{ something | operation }}. Вы можете найти список фильтров в документации jinja2.

например, to круглые, вы можете сделать :

{{ 42.55|round }}

это отобразит "42" на веб-странице. А abs фильтр существует таким же образом.

обратите внимание, что эти фильтры могут быть использованы только для изменения значений перед дисплей, и может быть использован для вычислений. Вычисления не должны выполняться в шаблоне в любом случае.