【问题标题】:Is there a way to set all members of a group to be superuser in django?有没有办法将组的所有成员设置为 django 中的超级用户?
【发布时间】:2019-10-18 15:34:09
【问题描述】:

在 Django 中,我想将组的所有成员(管理员)设置为超级用户。有没有办法可以让组的新成员自动成为超级用户?

【问题讨论】:

    标签: django-admin django-authentication


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 2010-09-17
      • 2021-02-23
      • 1970-01-01
      相关资源
      最近更新 更多