FlaskAdmin modelview函数

2024-10-03 02:47:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有flask Admin的flask应用程序,用/admin/userview模型视图管理用户。 我希望它在数据库中具有正确组的用户导航到/admin/userview时显示页面,如果没有,则返回纯文本“not admin”。幸运的是,我得到了最后一部分的工作,但不幸的是,我似乎无法得到第一部分(如果他们在正确的组中,则继续显示页面)。以下是相关代码:

class MyView(ModelView):
    @expose('/', methods = ['GET', 'POST'])
    def index(self):
    ## grab kerberos username (PROD)
        secuser = request.environ.get('REMOTE_USER')

        adminresult = User.query.filter_by(usrlevel='admin').all()
        adminresult = str(adminresult)
        adminresult = adminresult.strip('[]')

        managerresult = User.query.filter_by(usrlevel='manager').all()
        managerresult = str(managerresult)
        managerresult = managerresult.strip('[]')    

        if secuser in adminresult:
            pass         <---------------\
        elif secuser in managerresult:    |- if a user is apart of either, this gives a ValueError
            pass         <---------------/
        else:
            return "NOT ADMIN" <--------- This works!

##ADMIN
admin = Admin(flaskapp, index_view=MyHomeView(), name="test APP")
admin.add_view(MyView(User, db.session, "Edit Users"))

以下是当用户在adminresultmanagerresult时得到的回溯:

^{pr2}$

我如何让ModelView“User”显示它的内容(如果用户在其中一个组中),而如果用户不在其中一个组中,则返回“not admin”文本?我想我已经完成了一半,继续下去似乎是个问题。。。在

谢谢!在


Tags: 用户文本flaskindexadminnot页面user
1条回答
网友
1楼 · 发布于 2024-10-03 02:47:05

你应该把支票放进^{}

class MyView(ModelView):
    def is_accessible(self):
        # grab kerberos username (PROD)
        secuser = request.environ.get('REMOTE_USER')

        admins_and_managers = User.query
                                  .filter(User.usrlevel.in_('admin', 'manager'))
                                  # Better yet, filter again on `secuser`
                                  # to avoid loading *every* admin and manager
                                  # on *every* request for this resource
                                  # and then use `.first` or `.one`
                                  .all()

        return secuser in admins_and_managers

相关问题 更多 >