Я использую макрос поля рендеринга _, представленный на странице документации Flask -WFT , для рендеринга полей в длинных формах в разных шаблонах.
Поле определяется следующим образом
year_built = IntegerField(label='Year Built',
description='Year built, not the year of a major renovation.',
validators=[validators.NumberRange(
min=1700,
max=2012,
message="Between %(min)s and %(max)s")])
Макрос выглядит так...
{% macro render_field(field) %}
{{ field.label }}
{{ field(**kwargs)|safe }}
{% if field.errors %}
{% for error in field.errors %}
- {{ error }}
{% endfor %}
{% endif %}
{% endmacro %}
В самих формах отдельные поля размещаются с помощью...
{{ render_field(form.year_built, class="input text")}}
Чего я не могу понять, так это способа использования описания в объекте поля в той части макроса, которая создает поле HTML field(**kwargs)
. Я знаю, что могу передавать ключевые слова в функцию поля рендеринга _, но я имею дело с формами с более чем 100 полями и устанавливаю описание в form.py, а затем снова устанавливаю его как ключевое слово title в template.html. как ненужное пресыщение. Я бы очень хотел использовать макрос для отображения описания в качестве заголовка, если он есть, или просто отображать поле без заголовка, если его нет.
Есть ли способ добавить новые записи в kwargs
до запуска функции поля ()?