2010-02-18 63 views
5

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

回答

3

这里是一个基本的例子。

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

首先,说你有一个名为报表模型。

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 

您可以创建一个中介模式向用户模型来处理组的权限:

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管理员的报告组进行管理,让您选择属于​​某个组的一次镜头。