【发布时间】:2021-02-14 23:31:23
【问题描述】:
我对 Django 比较陌生,我正在寻找一些关于如何以某种方式设置权限的指导。基本上我有一个应用程序,其中包含几个类似的模型:
class Project(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(CustomUser, related_name="projects")
class Task(models.Model):
name = models.CharField(max_length=100)
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name="tasks")
class Asset(models.Model):
name = models.CharField(max_length=100)
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name="assets")
我的想法是,如果用户被“分配”到项目(通过 M2M 字段),则该用户将有权访问与该项目相关的所有资产和任务。我已经查看了 django-guardian 以获得每个对象的权限,我认为这可能是要走的路,但对我来说,似乎我必须在每个模型上设置这些权限..?
感觉这应该是为任何基于项目的应用程序设置权限的一种非常常见的方式,但我很难找到类似的例子,并开始怀疑我是否过度思考或寻找错误的方向?
谢谢你, 乔纳斯
【问题讨论】:
标签: python django django-models permissions django-guardian