过去 3 天我一直在搜索 Google 和 Stackoverflow,但找不到类似的东西。我想扩展或使用 django 组和权限。
假设我们有一些具有不同团队和用户的项目。
class Project(models.Model):
owner = models.ForeignKey(User)
name = models.CharField(max_length=100)
class Team(models.Model):
project = models.ForeignKey(Project)
members = models.ManyToManyField(User)
name = models.CharField(max_length=100)
permission = models.ManyToManyField(Permission)
现在 - 一切都很好。现在我想要扩展 django 提供的现有 Auth.Group 以便我可以使用request.user.has_perm...
直接方式。
因此,让我们将Team-Model更改为
class Team(Group):
project = models.ForeignKey(Project)
members = models.ManyToManyField(User)
这扩展了现有的集团。name
andpermissions
字段直接来自Group -Model。如果我创建一个新Team,也会添加一个Group。那太棒了。
使用我还可以添加的自定义save
方法,user
将members
添加到创建的Group中,并获得授予Team/Group的权限。
现在我的问题是,组name
的字段是唯一的 - 所以我无法为每个项目添加一个管理员- 团队。
我考虑为前端添加另一个名称字段,并为Group-Model的名称字段生成一个唯一的字符串。但是嗯....对于多个自定义组有更好的解决方案吗?也许有人有想法?先感谢您!