Как правильно назначить права доступа пользователю при сохранении модели?

Я хочу назначить права пользователю, когда я меняю группу в админке Django.

Я добавляю это разрешение внутри пользовательской модели User в методе save.

Когда я сохраняю изменения в панели администратора, никаких ошибок не возникает, но разрешения не создаются в моей локальной БД

Вот как выглядит моя модель

class UserProfile(AbstractUser, PermissionsMixin):
    name = models.CharField(max_length=255, unique=False, default=None)
    email = models.EmailField(max_length=50, unique=True)
    email_verified = models.BooleanField(default=False)
    date_joined = models.DateTimeField(default=timezone.now)
    password = models.CharField(max_length=100, null=False)

    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = ["name"]

    objects = CustomAccountManager()

    def is_member(self, group_name: Roles):
        return self.groups.filter(name=group_name.value).exists()
    
    def save(self, *args, **kwargs):
        if self.is_member(Roles.STAFF):
            permissions = Permission.objects.filter(codename__in=settings.STAFF_PERMISSIONS)
            self.user_permissions.add(*permissions)
            logger.info(f"Permissions {list(permissions)} added for user {self.email}")

        super().save(*args, **kwargs)

По какой-то причине я могу добавить разрешения из CLI при создании экземпляра User, но не в методе save, что здесь может быть не так?

Вернуться на верх