Python flask管理员:如何根据单个用户而不是角色自定义视图?

Python flask管理员:如何根据单个用户而不是角色自定义视图?,python,flask,flask-sqlalchemy,flask-admin,Python,Flask,Flask Sqlalchemy,Flask Admin,众所周知,flask admin允许具有相同角色的用户拥有相同的权限。但是,在我的应用程序中,我只想限制创建查询的用户查看和编辑 例如,有许多具有相同角色的用户称为“开发人员”,他们创建代码审阅并等待批准 下图显示开发者Gina可以在列表中看到开发者Bill的项目(这是不需要的)。我想实现的是,只有吉娜和评审员(Wesker和Steve在这里)可以在列表中查看该项目 我把密码放好了 ,如果不合适,我将删除链接。提前谢谢 您应该创建另一个用户角色来实现您的目标。它将帮助您节省时间,并且您可以轻松地

众所周知,flask admin允许具有相同角色的用户拥有相同的权限。但是,在我的应用程序中,我只想限制创建查询的用户查看和编辑

例如,有许多具有相同角色的用户称为“开发人员”,他们创建代码审阅并等待批准

下图显示开发者Gina可以在列表中看到开发者Bill的项目(这是不需要的)。我想实现的是,只有吉娜和评审员(WeskerSteve在这里)可以在列表中查看该项目

我把密码放好了 ,如果不合适,我将删除链接。提前谢谢


您应该创建另一个用户角色来实现您的目标。它将帮助您节省时间,并且您可以轻松地为特定的个人或组自定义视图


请仔细阅读此

根据您提供的信息,解决方案可能如下所示

  • 重写/扩展收集
    项目
    记录的逻辑,以便只存在属于当前用户的记录。要演示的示例可能如下所示:

    伪sql

    选择团队、名称、项目名称、版本。。。来自name=current\u user.name的项目

  • 重写/扩展负责保存记录的逻辑,以验证是否允许当前用户对给定项目记录进行更改


  • 替代ModelView,您可以筛选结果以显示记录的用户自己的结果:

    def get_query(self):
      return self.session.query(self.model).filter(self.model.user==current_user)
    
    def get_count_query(self):
      return self.session.query(func.count('*')).filter(self.model.user==current_user)
    
    您可以在此处找到更多信息: