2010-09-16 3 views
141

Я хотел бы знать, как установить переменную с другой переменной в jinja. Я объясню, у меня есть подменю, и я хотел бы показать, какая ссылка активна. Я пробовал:Установить переменную в jinja

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

где recordtype - переменная, данная для моего шаблона.

+69

Я думаю, что пора принять Ответ Soviut;) –

+1

Возможный дубликат [Справочная шаблонная переменная в выражении Jinja] (http://stackoverflow.com/questions/32024551/reference-template-variable-within-jinja-expression) – davidism

+1

@KyleWild, всего 6 год с момента ответа Совюта. Давайте посмотрим, сможет ли MyTux растянуть его до 10 лет :) –

ответ

334

{{ }} сообщает шаблону печать значение, это не будет работать в выражениях, подобных тем, которые вы пытаетесь сделать. Вместо этого используйте тег шаблона {% set %}, а затем присвойте значение так же, как и в обычном коде python.

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

Результат:

it worked 
+0

если моя переменная dict, что теперь {% set dict.key = 'test'%} не работает – Ib33X

+20

Похоже, вы пытаетесь сделать слишком много работы внутри шаблона. Но я думаю, что вы можете получить доступ к dict, используя квадратные скобки. – Soviut

+0

Удаленный ответ также включал эту ссылку, которая служит дополнительной информацией для этого ответа: http://jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items – Pascal

9

Просто Установите его как этот

{% set active_link = recordtype -%} 
+4

Почему именно так (знак минус на конец, но не в начале)? Это позволит удалить конечные, но не ведущие пробелы, если я не ошибаюсь. С какой целью? – Leonid

12

Nice стенографии для нескольких переменных заданий

{% set label_cls, field_cls = "col-md-7", "col-md-3" %} 
Смежные вопросы