Как администратору колбы добавить динамические form_choices из базы данных - PullRequest
0 голосов
/ 10 мая 2019

Как динамически загружать form_choices из других ModeView.

мой код

class OnBoarding(db.Model):
    __tablename__ = 'on_boarding'
    status = db.Column(db.String(256))


class OptionStatus(db.Model):
    __tablename__ = 'option_status'
    id = db.Column(db.BigInteger, primary_key=True, autoincrement=True)
    status = db.Column(db.String(256))


class OnBoardingAdminView(ModelView):
    form_choices = {
        'status': [(m.status, m.status for m in OptionStatus.query.all())],
    }

admin.add_view(ModelView(OptionStatus, db.session, category='Option'))
admin.add_view(OnBoardingAdminView(OnBoarding, db.session))


Похоже, ваше сообщение в основном кодовое;пожалуйста, добавьте еще некоторые детали.????

1 Ответ

0 голосов
/ 14 июня 2019

Поскольку ваш выбор не является статическим и требует запроса к БД, вы должны заполнить их в scaffold_form или create_form / edit_form.

class MyView(BaseModelView):
    def scaffold_form(self):
        form = super(MyView, self).scaffold_form()

        choices = ((m.status, m.status) for m in OptionStatus.query.all())
        form.status.choices = choices

        return form
...