flask - 如何 Flask-admin 从数据库添加动态 form_choices

标签 flask flask-admin

如何从其他ModeView动态加载form_choices。

我的代码

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))


看起来你的帖子主要是代码;请添加更多详细信息。 ????

最佳答案

由于您的选择不是静态的并且需要数据库查询,因此您应该将它们填充到 scaffold_formcreate_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

关于flask - 如何 Flask-admin 从数据库添加动态 form_choices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075633/

相关文章:

javascript - 创建自定义休息客户端

python - Flask-Moment 不在模板上显示任何内容

python - 无法使用 REST API 调用访问/下载 Docker 容器内生成的文件夹

python - flask 管理员 : Customize table name for the admin interface

python - Flask-Admin & Authentication : "/admin" is protected but "/admin/anything-else" is not

python - 使用 Flask-admin 在数据库中存储 PDF 文件

python - Flask-admin 批处理操作,通过弹出模式窗口进行参数

python - Flask 应用程序运行 Python 2.x 而不是 3.x

javascript - Html Checkbox,多个具有相同的 'name' 。如果选中,值为 1,如果未选中,值为 0

python - Flask-Admin:根据请求形成脚手架