Django:基于组的权限示例/ docs?

Par*_*and 5 django permissions authorization

在使用Django设置基于群组的权限时,善良的灵魂能指出一些好的文档或代码示例吗?我的要求相当简单 - 我只需要根据用户所属的组启用/禁用功能.

Tod*_*ses 3

这是一个基本示例。

请参阅: http: //www.thinkjson.com/group-permissions-in-django/

首先,假设您有一个名为 Report 的模型。

class Report(models.Model):
    name = models.CharField(max_length=100)
    contents = models.TextField(blank=True)
    authorized_groups = models.ManyToManyField('ReportGroup', null=True, blank=True, related_name='report_groups')    
    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

您可以为用户模型创建一个中间模型来处理组权限:

class ReportGroup(models.Model):
    name = models.CharField(max_length=100)
    authorized_users = models.ManyToManyField(User, null=True, blank=True, related_name='report_users')
    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

现在,当您在 Django 管理员中编辑报告时,您可以为报告分配组权限。这些组可以在 Django 管理员中作为报告组进行管理,让您一次性选择谁属于一个组。