Я хотел бы визуализировать flask_wtf
форму с bootstrap/wtf.html
.
Форма содержит обычные SelectField
и FieldList
полей SelectFields.
Для рендеринга одного SelectField отлично работает, используя функцию wtf.form_field
.
Однако применение одной и той же функции к каждому SelectField из FieldList вызывает ошибку:
File "/usr/local/lib/python3.5/dist-packages/flask_bootstrap/templates/bootstrap/wtf.html", line 119, in template
{{field.label(class="control-label")|safe}}
TypeError: 'str' object is not callable
Моя интерпретация ошибки заключается в том, что строка "field.label" была вызвана как функция с использованием скобок. С другой стороны, похоже, что то же самое работает для одного SelectField.
Вот form.py:
from flask_wtf import FlaskForm
from wtforms import SelectField, FieldList, FormField
class FormEntry(FlaskForm):
selectfield = SelectField('Name', coerce=int)
class MyForm(FlaskForm):
selectfield = SelectField('Name', coerce=int, choices=[(2, "choice 2"), (1, "choice 1")])
form_entries = FieldList(FormField(FormEntry))
А вот render.html:
{% extends 'bootstrap/base.html' %}
{% import 'bootstrap/wtf.html' as wtf %}
{{ form.hidden_tag() }}
{{ wtf.form_field(form.selectfield) }}
{% for entry in form.form_entries %}
{{ wtf.form_field(entry.selectfield) }}
{% endfor %}