Вот базовый пример.
См .: 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, что позволяет вам одним снимком выбрать, кто принадлежит группе.