【发布时间】:2019-10-18 15:34:09
【问题描述】:
在 Django 中,我想将组的所有成员(管理员)设置为超级用户。有没有办法可以让组的新成员自动成为超级用户?
【问题讨论】:
标签: django-admin django-authentication
在 Django 中,我想将组的所有成员(管理员)设置为超级用户。有没有办法可以让组的新成员自动成为超级用户?
【问题讨论】:
标签: django-admin django-authentication
您可以使用信号来做到这一点。您可以获取用户添加到组的时间点,如果该用户在管理员组中,则将该用户设置为超级用户。
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()
【讨论】: