Вложение Jinja2 и WTForms

На данный момент я использую следующий код для создания метки:

{{ form.code.label(class="control-label required") }} 

Обратите внимание на необходимый класс. Теперь это жестко закодировано, но я хочу добавить это динамически на основе информации о поле WTForms:

form.code.flags.required 

Я пробовал что-то вроде

{{ form.code.label(class="control-label {% if form.code.flags.required 
%}required{% endif %}") }} 

но это не сработало. Есть ли способ решить это?


person Marcel Overdijk    schedule 15.03.2013    source источник


Ответы (1)


Этот пример не будет работать, потому что Jinja2 не рассматривает синтаксис внутри квадратных скобок '{{}}' как часть шаблона, хотя и пытается выполнить интеллектуальный анализ, чтобы попытаться выяснить, что вы хотите (подробнее здесь: http://jinja.pocoo.org/docs/templates/#variables).

Самый простой способ — вынести логику наружу:

{% if form.code.flags.required %}
    {{ form.code.label(class="control-label required") }}
{% else %}
    {{ form.code.label(class="control-label") }}
{% endif %}
person DrakeAnderson    schedule 17.03.2013