为具有附加模型的Django用户添加权限

1 投票
1 回答
565 浏览
提问于 2025-04-16 10:17

我将要创建一个内部网站,这个网站会有多个角色,比如客户员工、客户管理员和工作人员团队成员。每个角色都会有一个模型,这个模型通过一对一或外键字段与用户关联,并且会有一些自定义字段。我希望每个角色都有自己的一套权限,就像一个小组一样。

我该如何在我的应用程序中存储这些权限呢?看起来小组的定义是作为 contrib.admin 应用的一部分,而不是在代码中。我在文档中找不到关于如何定义小组的任何信息。

处理模型级别的权限有什么好的方法吗?也许我可以在模型中检查一下,看看用户是否拥有正确的角色模型。

1 个回答

1

访问控制列表有点复杂(有些人甚至说它已经过时了),但Django提供了一个不错的默认实现,位于contrib.auth中,里面包含了:

  • 用户
  • 权限:这是一个简单的二元标志(是/否),用来表示一个用户是否可以执行某个特定的任务。
  • 组:这是一个通用的方法,可以将标签和权限应用到多个用户上。

如果想要更详细的介绍,可以查看这里:

撰写回答