Wtforms - визуализировать IntegerRangefields внутри поля формы внутри списка полей итеративно - PullRequest
0 голосов
/ 26 июня 2018

У меня действительно длинная форма (более 100 полей). Он состоит из различных типов полей, включая IntegerRangeField, FormField, FieldList и другие.

Вот упрощенный пример:

class SubForm(Form):
    first_name=TextField('First')
    age=IntegerRangeField('Age')
class MainForm(Form):
    height=IntegerRangeField('Height')
    weight=IntegerRangeField('Weight')
    friend_list=FieldList(FormField(SubForm),'Friends')

IntegerRangeFields не отображает значение ползунка по умолчанию, поэтому я использую функцию javascript JSfunction для отображения значения ползунка в шаблоне.

Все отображается с помощью макроса:

{% for field in form if field.type not in ["HiddenField","CSRFTokenField"] %}
    {% if field.type in ["IntegerRangeField"] %}
        {{field.label}}
        {{field(min=0, max=100, oninput="JSfunction(this)")}}
        <output><script> document.write() </script></output>
    {% else %}
        {{field.label}}
        {{field}}
    {% endif %}
{% endfor %}

У меня проблемы со ссылками на IntegerRangeFields в FormField в FieldList, так что я могу применить к ним JSfunction и отобразить значение ползунка. Как я могу это сделать? На данный момент все поля / виджеты отображаются, но ползунки в пределах FormFields в пределах FieldList не показывают значение ползунка.

Заранее спасибо!

редактирование: IntegerRangeFields, которых нет в списке полей, отображаются как ползунки, а при перемещении ползунка рядом с ползунком отображается значение ползунка:

т.е. height ----------|| 100

IntegerRangeFields, которые находятся в FieldList, не имеют примененной функции JS, поэтому у них нет целочисленного значения рядом со слайдером:

т.е. age ||----------

У меня возникают трудности при переходе к IntegerRangeFields в FormFields в FieldLists.

...