2012-01-20 24 views
5

Kullanıcıları kayıt olmak üzere iki farklı gruba, işverenine veya çalışanına ayırmak istiyorum. Ben django-userena kullanıyorum ve işveren grubu için bağlı farklı bir url dışında aynı kayıt görünümünde bir klon kullanmayı düşünüyorum.Django-userena'yı kullanarak bir kullanıcıyı bir gruba nasıl atarsınız?

Yani kim (r '^ kayıt/işveren/$) url'deki kadar imzalar

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

görünümüne eklenen işveren grubuna eklenecektir. Bu doğru bir yaklaşım mı?

cevap

7

Düzenlenmiş: form.save(), yeni oluşturulan kullanıcıyı döndürür. Daha sonra onu grubunuza eklemeniz yeterlidir. ne yapmak istediğiniz işveren grubuna her kullanıcı eklemek için ise, ben de signals kullanmayı düşünün

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

: Sizin bakış gibi görünmelidir. == `form = signup_form() request.method eğer: Böyle bir şey ona her yeni oluşturulan kullanıcı eklemek ve siz userena varsayılan signup görünümü kullanmak için izin verir:

# 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')) 
+0

Şu görünümü vardır 'POST': form = signup_form (request.POST, request.FILES) eğer form.is_valid(): user = form.save() ' Linke bağlantı [bağlantı] https://github.com /bread-and-pepper/django-userena/blob/master/userena/views.py [link] – Jesramz

+0

Belki de "user = form.save()' dan önce), "new_user.groups.add ekleyebilirim. Group.objects.get (name = 'jobyer')) ve ben ince k Yeni görünümde ihtiyaç duyulan her şey bu mu? Görünüm, kullanıcıyı zaten oluşturan bir kaydetme yöntemine sahip bir form çağırdığından. [userena_forms] (https://github.com/bread-and-pepper/django-userena/blob/master/userena/forms.py) – Jesramz

+0

Yorumunuz için teşekkürler, bunun sizin için çalıştığını kontrol edin – StefanoP