如何使用django-userena在注册时将用户分配到组?

Jes*_*amz 5 django registration usergroups django-views

我希望在注册时将用户分为两个不同的组,雇主或员工.我正在使用django-userena,对于雇主组,我正在考虑使用相同注册视图的克隆,除非有不同的网址绑定它.

因此,任何在url(r'^ signup/employer/$)注册的人都将被添加到雇主组中

new user = user.groups.add(Group.objects.get(name=employer))
Run Code Online (Sandbox Code Playgroud)

添加到视图中.这是正确的方法吗?

Ste*_*noP 8

已编辑:form.save()返回刚刚创建的用户.然后,您只需将其添加到您的组中即可.您的视图应如下所示:

form = signup_form() 
if request.method == 'POST': 
    form = signup_form(request.POST, request.FILES) 
    if form.is_valid(): 
        user = form.save()
        user.groups.add(Group.objects.get(name='employer'))
Run Code Online (Sandbox Code Playgroud)

我还会考虑使用信号,如果您想要做的是将每个用户添加到您的雇主组.这样的东西会将每个新创建的用户添加到其中,并允许您使用以下默认signup视图userena:

# somewhere, in your models.py file
@receiver(post_save, sender=User, dispatch_uid='myproject.myapp.models.user_post_save_handler')
def user_post_save(sender, instance, created, **kwargs):
    """ This method is executed whenever an user object is saved                                                                                     
    """
    if created:
        instance.groups.add(Group.objects.get(name='employer'))
Run Code Online (Sandbox Code Playgroud)