flask-admin:如何根据个人用户而不是角色自定义视图?

Sam*_*oth 2 python flask flask-sqlalchemy flask-admin

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

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

下图显示了开发人员Gina可以在列表中看到开发人员Bill的项目(这是不希望的)。我只想实现Gina,而审阅者(此处为WeskerSteve)可以在列表中查看此项目。

我将代码放在这里 ,如果不合适,我将删除链接。提前致谢。

在此处输入图片说明

小智 5

覆盖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)
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到更多信息: Flask-Admin默认过滤器