Есть ли способ установить всех членов группы суперпользователем в django? - PullRequest
0 голосов
/ 18 октября 2019

В Django я бы хотел, чтобы все члены группы (администраторы) были суперпользователями. Есть ли способ сделать это так, чтобы новые члены группы автоматически стали суперпользователями?

1 Ответ

1 голос
/ 22 октября 2019

Вы можете сделать это с помощью сигналов. Вы можете получить точку, после которой пользователь был добавлен в группу, и сделать этого пользователя суперпользователем, если он входит в группу администраторов.

from django.contrib.auth.models import User, Group
from django.db.models.signals import m2m_changed
from django.dispatch import receiver

@receiver(signal=m2m_changed, sender=User.groups.through)
def manage_administratiors(instance, action, reverse, model, pk_set, using, *args, **kwargs):
    if model == Group and action == 'post_add':
        administrators_pk = Group.objects.get(name='administrators').pk
        if administrators_pk in pk_set:
            instance.is_superuser = True
            instance.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...