我正在运行Django 2.0.8,当前正在使用django-allauth。
当新用户注册/注册时,我希望他们自动添加到组中并被赋予人员身份,以便他们可以登录到管理页面。
我已经read some of the documentation,但是我目前不了解它们如何联系在一起,并且每个新用户都默认具有某些权限。
答案 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()