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

时间:2010-02-18 20:15:16

标签: django permissions authorization

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

1 个答案:

答案 0 :(得分: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

您可以为User模型创建中间模型以处理组权限:

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

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