创建用户时如何自动添加组和人员权限

时间:2018-08-22 20:00:56

标签: django

我正在运行Django 2.0.8,当前正在使用django-allauth。

当新用户注册/注册时,我希望他们自动添加到组中并被赋予人员身份,以便他们可以登录到管理页面。

我已经read some of the documentation,但是我目前不了解它们如何联系在一起,并且每个新用户都默认具有某些权限。

2 个答案:

答案 0 :(得分:2)

要将新用户标记为职员,请使用is_staff属性。要将用户添加到组中,请从数据库中获取Group对象,并使用user.groups.add(group)将其添加到用户中:

from django.contrib.auth.models import Group

user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
user.is_staff = True
user.save()
group = Group.objects.get(name='Group name')
user.groups.add(group) 

答案 1 :(得分:1)

在这种情况下,如果您无权访问用户模型并且具有保存功能,则可以在后保存信号中添加逻辑。

@receiver(models.signals.post_save, sender=User)
def post_save_user_signal_handler(sender, instance, created, **kwargs):
    if created:
       instance.is_staff = True
       group = Group.objects.get(name='Group name')
       instance.groups.add(group)
       instance.save()