Есть два решения:
- При создании поля с использованием render_kw .
- При визуализации поля в шаблоне (когда поле вызывается [
form.field()
]).
Инициализировать поле со стилем:
Все объекты поля в WTForms имеют render_kw arg в __init__
.
render_kw (dict) - если предоставлен, словарь, содержащий ключевые слова по умолчанию, которые будут переданы виджету во время рендеринга.
Когда ваш шаблон визуализируется, Jinja2 будет читать это render_kw . В вашем случае вы можете определить:
conditions = BooleanField(
"I agree to the above conditions.", validators=[DataRequired()],
render_kw={"style": "font-weight: bold;")
Рендеринг при создании шаблона
Когда Jinja2 рендерит, вы можете указать другие параметры рендеринга, вызвав поле .
form.field()
__call__(**kwargs)
: отобразите это поле как HTML, используя аргументы ключевого слова в качестве дополнительных атрибутов.
[...]
Во всех WTForms HTML виджеты, аргументы ключевых слов превращаются в атрибуты HTML, хотя теоретически виджет может делать все, что захочет, с предоставленными аргументами ключевого слова, а виджетам даже не нужно делать что-либо, связанное с HTML.
Итак, в вашем файле шаблона вы можете сделать что-то вроде этого:
{{ form.field(style="font-weight: bold;") }}
Обратите внимание, что есть исключение для ключевого слова class, вероятно, зарезервировано чем-то другим , то ключ должен быть class_
.
Источник: Поля - Документация WTForms