Сохранить результат фильтра Jinja - PullRequest
7 голосов
/ 30 ноября 2011

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

Как сделатьЯ присваиваю результат фильтра переменной, которую можно использовать в нескольких местах.

Если я несколько раз вызываю «случайный» фильтр, маловероятно, что они будут одинаковыми.

По сути, что я хочу сделать:

{% set image = {{ images | random }} %}

, очевидно, это не работает.

Ответы [ 3 ]

10 голосов
/ 01 декабря 2011

Использовать фильтр без разделителей {{ }}.

{% set image = images|random %}

Jinja хранит глобальных и фильтров в двух разных пространствах имен (словарях), что не позволяет имиспользуется взаимозаменяемо.

3 голосов
/ 01 декабря 2011

| в Jinja просто передает переменную в функцию. Просто вызовите функцию, и она должна работать:

{% set image = random(images) %}
0 голосов
/ 17 июля 2019

Это не работает в цикле, я использовал этот код:

{% set result = result | replace('x','y') %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...