Скругление в скобках jinja2 - PullRequest
       28

Скругление в скобках jinja2

11 голосов
/ 06 октября 2011

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

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

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

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

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

1 Ответ

30 голосов
/ 06 октября 2011

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

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

{{ 42.55|round }}

Thisбудет отображать «42» на веб-странице.Фильтр abs существует таким же образом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...