Встановити змінну в jinja


275

Я хотів би знати, як я можу встановити змінну з іншою змінною в jinja. Поясню, у мене є підменю, і я хотів би показати, яке посилання активне. Я спробував це:

{% set active_link = {{recordtype}} -%}

де тип запису - це змінна, надана для мого шаблону.


18
Люди, які сідають сюди з Google: вас, напевно, цікавлять в першу чергу офіційні документи на setтезі , а не конкретна синтаксична помилка, яку зробив автор запитання тут, або те, як це виправити, - ось що відповідають верхні відповіді тут та за пов’язаною дублікатною адресою .
Mark Amery

1
@MarkAmery Ty! Особливо ця частина jinja.palletsprojects.com/en/2.11.x/templates/… надзвичайно корисна.
ruohola

Відповіді:


548

{{ }}говорить шаблону надрукувати значення, це не буде працювати у виразах, як ви намагаєтесь зробити. Натомість використовуйте {% set %}тег шаблону, а потім присвоюйте значення так само, як і в звичайному коді python.

{% set testing = 'it worked' %}
{% set another = testing %}
{{ another }}

Результат:

it worked

2
якщо моя змінна dict, що зараз {% set dict.key = 'test'%} не працює
Ib33X

Видалена відповідь також включала це посилання, яке служить додатковою інформацією до цієї відповіді: jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items
Паскаль

Це було чудове пояснення і просте. Люблю :)
Фаріс Райхан,

чи можемо ми створити глобальну змінну jinja та використовувати її у всьому файлі html, в який ми вбудовуємо змінну jinja? @Soviut
Шрі Тест


25

Просто налаштуйте його так

{% set active_link = recordtype -%}

7
Чому саме так (знак мінус в кінці, але не на початку)? Це призведе до видалення кінцевого, але не ведучого пробілу, якщо я не помиляюся. З якою метою?
Леонід

16
Це в оригінальному питанні ¯ \ _ (ツ) _ / ¯
Грем Пем Хіт,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.