如何在Flask-Admin中为创建/编辑表单字段设置固定值

时间:2017-12-26 16:15:51

标签: python flask flask-admin

我使用Flask-Admin和Flask-Security编写网站。我想实现一个功能:只有admin角色的用户才能创建foo角色的用户。只有foo角色的用户可以创建bar角色的用户。

我试过了QueryAjaxModelLoader

form_ajax_refs = {
    roles: QueryAjaxModelLoader("role", db.session, Role, fileds=["name"])

form_choices

form_choices = {"roles": [(3, "foo"), ]}

这两种方法无法解决问题。谁能给我一些建议?

1 个答案:

答案 0 :(得分:1)

首先,我使用on_model_change设置roles字段的默认值。

然后,我使用form_argsquery_factory来限制roles字段的选择。

def filter_func():
    return db.session.query(Role).filter_by(name="applicant")

form_args = {
    "roles": {
        "query_factory": filter_func
    }
}