Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 10, 2014 23:46:22

zillion
Зарегистрирован: 2012-08-24
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

[Flask] Порядок полей в форме

Всем привет,

Дана некая модель с большим количеством полей (≈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))

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

Может кто сталкивался с таким?

Отредактировано zillion (Ноя. 10, 2014 23:47:18)

Офлайн

#2 Ноя. 11, 2014 00:43:14

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

[Flask] Порядок полей в форме

И не один раз. Напилил свою обертку, которая поддерживает много няшностей: последовательность полей, обязательность, два вида пометок, нормальный choice_type и еще куча всего. Там нужно перепиливать основательно…

Офлайн

#3 Ноя. 11, 2014 00:59:05

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

[Flask] Порядок полей в форме

Кстати. Для простоты можете глянуть в сторону sqlalchemy-utils. Он расширяет саму sqlalchemy и позволяет Вам создавать поля типа ChoiceType в БД. При создании форм эти поля автоматом вытягиваются sqlalchemy-wtf и превращаются в соответствующие структуры html.

Отредактировано 4kpt_II (Ноя. 11, 2014 08:18:01)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version