如何从Flask-Admin中的BaseModelView类中分离方法中的访问

时间:2019-04-03 10:12:35

标签: python flask flask-sqlalchemy flask-admin flask-security

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

现在,我已经由 Flask-SQLAlchemy 构建了 User 表,现在我想按用户角色管理该表。这意味着超级用户可以在Flask-Admin表单中编辑用户角色,而在其他客户端中则不能执行该角色,或者不显示该表单。

喜欢此屏幕截图: enter image description here 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')

1 个答案:

答案 0 :(得分:1)

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

@SergeyShubin的答案here也与我的情况类似。非常感谢@SergeyShubin。