Найти - Пользователи
Полная версия: [Flask] Порядок полей в форме
Начало » Web » [Flask] Порядок полей в форме
1
zillion
Всем привет,

Дана некая модель с большим количеством полей (≈50), форма, с целью уменьшения кода, создается через model_form из wtforms.ext.sqlalchemy.orm. В шаблоне вывод формы сделан через цикл и макрос:
{{ form.hidden_tag() }}
{% for field in form if field.widget.input_type != 'hidden' %}
    {{ render_field(field) }}
{% endfor %}
Данный вариант работает, но мне необходимо показывать два поля как выпадающие списки. Так как mode_form не представляет возможности переопределить тип поля я меняют тип через setattr:
setattr(RecordForm, 'year', SelectField(choices=year_choices))

Поле становится выпадающим но отображается в конце формы, а мне необходимо сохранить порядок как в модели.

Может кто сталкивался с таким?
4kpt_II
И не один раз. Напилил свою обертку, которая поддерживает много няшностей: последовательность полей, обязательность, два вида пометок, нормальный choice_type и еще куча всего. Там нужно перепиливать основательно…
4kpt_II
Кстати. Для простоты можете глянуть в сторону sqlalchemy-utils. Он расширяет саму sqlalchemy и позволяет Вам создавать поля типа ChoiceType в БД. При создании форм эти поля автоматом вытягиваются sqlalchemy-wtf и превращаются в соответствующие структуры html.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB