Настроить групповые разрешения в django?
Мне нужно сделать аутентификацию на основе ролей. Во-первых, я создал групповые разрешения для всех моих приложений. Я назначил некоторые из них на роль в соответствии с возможностями роли.
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import Group
class Role(models.Model):
title = models.CharField(max_length=32)
groups = models.ManyToManyField(Group)
def __str__(self) -> str:
return self.title
Здесь вы можете увидеть роль водителя, которая имеет доступ к некоторым разрешениям группы (на самом деле это просто имена групп)
Теперь у меня есть модель пользователя:
class Users(AbstractUser):
role = models.ForeignKey(
Role, on_delete=models.CASCADE, related_name='roles', blank=True, null=True)
def __str__(self):
return (self.username)
Я не хочу выбирать групповые разрешения каждый раз при создании нового пользователя. Я просто хочу установить роль для пользователя, и он должен автоматически выбирать все разрешения на основе групп выбранной роли. Как настроить группы в моделях django?