如何在 Flask-Admin 中将方法中的访问与 BaseModelView class 分开

How to separate access in methods from BaseModelView class in Flask-Admin

我正在使用 Flask-Admin 来管理我的仪表板,我的应用程序中的角色很少,其中两个是 superuser客户端.

现在,我有 User table 由 Flask-SQLAlchemy 构建,现在我想管理 table 按用户角色。这意味着 superuser 可以在 Flask-Admin 表单中编辑用户角色,而在其他 client 中不能这样做或者表单不是显示。

喜欢这个截图: superuser 角色的编辑表单。但是现在,如果当前用户具有 client.

角色,我希望不显示编辑表单

所以,从逻辑上讲,我想做这样的事情:

class UserModelView(sqla.ModelView):
    if current_user.has_role('superuser'):
        form_excluded_columns = ('created_at', 'updated_at')
    else:
        form_excluded_columns = ('created_at', 'updated_at', 'roles')

我按照@SergeyShubin 的建议遵循他的回答,在那种情况下与我的情况非常相似,并且效果很好。

还有@SergeyShubin 的回答 也与我的情况相似。非常感谢@SergeyShubin。