我想将用户分为两个不同的组,雇主或员工,注册时。我正在使用django-userena,对于雇主组,我正在考虑使用同一注册视图的克隆,除了绑定了不同的url。
因此,无论谁在url(r'^注册/雇主/$)注册,都将被添加到带有的雇主组
new user = user.groups.add(Group.objects.get(name=employer))
添加到视图中。这是正确的方法吗?
编辑: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'))
如果你想把每个用户添加到你的雇主组中,我也会考虑使用信号。这样的操作会将每个新创建的用户添加到其中,并允许您使用userena
:中的默认signup
视图
# 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'))