在Django中,我想将组中的所有成员(管理员)设置为超级用户。有什么方法可以使该组的新成员自动成为超级用户?
答案 0 :(得分:1)
您也许可以使用信号来执行此操作。您可以了解到将用户添加到组后,如果该用户在管理员组中,则将该用户设置为超级用户。
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()