5

サインアップ時に、ユーザーを 2 つの異なるグループ (雇用主または従業員) に分けたいと考えています。私はdjango-userenaを使用しており、雇用者グループには、別のURLが関連付けられていることを除いて、同じサインアップビューのクローンを使用することを考えています。

したがって、url(r'^signup/employer/$) でサインアップする人は誰でも、雇用者グループに追加されます。

new user = user.groups.add(Group.objects.get(name=employer))

ビューに追加されました。これは正しいアプローチですか?

4

1 に答える 1

8

Edited :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'))

すべてのユーザーを雇用者グループに追加したい場合は、シグナルの使用も検討します。このようなものは、新しく作成された各ユーザーをそれに追加し、からデフォルトのビューを使用できるようにします:signupuserena

# 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'))
于 2012-01-21T00:10:24.400 に答える