我想将用户分为两个不同的群体,雇主或 员工,在注册。我正在使用django-userena,对于雇主组,我正在考虑使用相同注册视图的克隆,除非有不同的网址绑定它。
因此,任何在url(r'^ signup / employer / $)注册的人都将被添加到雇主组中
new user = user.groups.add(Group.objects.get(name=employer))
添加到视图中。这是正确的做法吗?
答案 0 :(得分: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'))
我还考虑使用signals,如果你想要做的是将每个用户添加到雇主组。这样的内容会将每个新创建的用户添加到其中,并允许您使用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'))