【发布时间】:2011-01-18 12:16:51
【问题描述】:
能否有好心人指出一些关于使用 Django 设置基于组的权限的优秀文档或代码示例?我的要求相当简单——我只需要根据用户所属的组启用/禁用功能。
【问题讨论】:
标签: django permissions authorization
能否有好心人指出一些关于使用 Django 设置基于组的权限的优秀文档或代码示例?我的要求相当简单——我只需要根据用户所属的组启用/禁用功能。
【问题讨论】:
标签: django permissions authorization
这是一个基本的例子。
见: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 管理员中作为报告组进行管理,让您一次性选择属于某个组的人。
【讨论】: