django - Django:多个管理页面使用相同的模型但不同的身份验证模式
问题描述
我正在尝试构建一个能够支持多个组织的 Django 站点。每个组织都有自己的员工和管理员,每个员工只能登录其组织的管理页面,以及与他们相同组织的员工输入的 CRUD 数据。
到目前为止,创建多个扩展 AdminSite 的管理页面没有任何问题。但我不知道如何将管理员/员工帐户分配给他们自己的组织,以便他们只能访问他们组织的管理页面和相应的组织数据(员工帐户现在可以进入任何管理页面)。
我也不确定为每个管理页面过滤数据的最佳方法是什么。我现在想到的是为我的数据模型再添加一个“组”列,并根据查询人员的“组”过滤每个管理页面中的查询。
对此的任何帮助和见解将不胜感激。
解决方案
如果您正在扩展基类,则可以覆盖AdminSite.has_permission
(docs )。AdminSite
至于您问题的第二部分,听起来您正在寻找对象级权限之类的东西。django-guardian可能是一个很好的扩展。此外,这个SO 答案对此有一些有趣的想法。
推荐阅读
- google-apps-script - 有没有办法检查某个邮件是否使用应用程序脚本在 gmail 中发送?
- c - 在#pragma pack(push,ALIGNMENT) 中作为宏传递的对齐会导致代码生成硬故障
- swift - 列表中的 SwiftUI edgeIgnoringSafeArea
- python - 没有函数返回的python函数
- apache-kafka - ksqlDB 表中键的原子性
- node.js - 如何在 NEST JS 中为特定/不同的请求方法处理多个中间件?
- aws-api-gateway - 是否可以通过 AWS API Gateway 对 AWS Step Function 进行同步调用?
- aws-api-gateway - 使用无服务器将 lambda 函数部署到 LocalStack 时无法使用 httpApi
- mongodb - SSL 和访问控制配置
- asp.net - asp.net core 3.1 未经授权的 401 重定向到未经授权的 razorpage 不起作用