首页 > 解决方案 > Django:多个管理页面使用相同的模型但不同的身份验证模式

问题描述

我正在尝试构建一个能够支持多个组织的 Django 站点。每个组织都有自己的员工和管理员,每个员工只能登录其组织的管理页面,以及与他们相同组织的员工输入的 CRUD 数据。

到目前为止,创建多个扩展 AdminSite 的管理页面没有任何问题。但我不知道如何将管理员/员工帐户分配给他们自己的组织,以便他们只能访问他们组织的管理页面和相应的组织数据(员工帐户现在可以进入任何管理页面)。

我也不确定为每个管理页面过滤数据的最佳方法是什么。我现在想到的是为我的数据模型再添加一个“组”列,并根据查询人员的“组”过滤每个管理页面中的查询。

对此的任何帮助和见解将不胜感激。

标签: djangodjango-rest-framework

解决方案


如果您正在扩展基类,则可以覆盖AdminSite.has_permissiondocs )。AdminSite

至于您问题的第二部分,听起来您正在寻找对象级权限之类的东西。django-guardian可能是一个很好的扩展。此外,这个SO 答案对此有一些有趣的想法。


推荐阅读