Переменная не раскрывается во включенном шаблоне selmer
У меня есть шаблон верхнего уровня, в котором я хочу использовать шаблон "фрагмент" внутри цикла for, но я не могу передать значение переменной:
{% for item in coll %}
{% include "fragment.html" with name="slack" item=item %}
{% endfor %}
item
и
name
затем используется в шаблоне fragment.html:
<div>
<label>
<input
title="{{item.id}}"
id="{{name}_{{item.id}}_active"
name="{{name}}-{{item.id}}_active"
...
/>
В то время как
name
правильно развернут (его значение жестко задано в родительском шаблоне),
item
параметр не является (его значение передается как есть).
Нужно ли мне использовать для этого другой синтаксис или он просто не поддерживается?
1 ответ
В
include
теги стыков в прилагаемом шаблоне. Это означает, что любые переменные в рамках родительского шаблона будут доступны для включенного шаблона. В
with
Оператор позволяет указать значения по умолчанию, которые не интерпретируются. Говоря
item=item
эффективно говорит
item|default:"item"
, то есть
item
переопределяется как
"item"
.