2012-01-20 11 views
5

मैं साइनअप पर उपयोगकर्ताओं को दो अलग-अलग समूहों, नियोक्ता या कर्मचारी में अलग करना चाहता हूं। मैं django-userena का उपयोग कर रहा हूं और नियोक्ता समूह के लिए मैं एक ही साइनअप दृश्य के क्लोन का उपयोग करने के बारे में सोच रहा हूं, इसके अलावा उससे जुड़े एक अलग यूआरएल को छोड़कर।django-userena का उपयोग कर साइनअप पर किसी समूह को उपयोगकर्ता को असाइन कैसे करें?

तो जो कोई भी (आर '^ साइनअप/नियोक्ता/$) यूआरएल पर पंजीकरण करता है के साथ

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

दृश्य में जोड़ा नियोक्ता समूह में जोड़ दिया जाएगा। क्या यह सही दृष्टिकोण है?

उत्तर

7

संपादित: 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 उपयोग करने पर विचार होगा, कि आप क्या करना चाहते हैं कि आपके नियोक्ता समूह के लिए जोड़ने के लिए हर उपयोगकर्ता है यदि। कुछ इस तरह यह करने के लिए प्रत्येक नव निर्मित उपयोगकर्ता को जोड़ने जाएगा, और आप डिफ़ॉल्ट 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')) 
+0

वर्तमान दृश्य है: 'प्रपत्र = signup_form() अगर request.method == 'पोस्ट': फॉर्म = साइनअप_फॉर्म (request.POST, request.FILES) अगर form.is_valid(): उपयोगकर्ता = form.save() ' दृश्य का लिंक [लिंक] https://github.com /bread-and-pepper/django-userena/blob/master/userena/views.py [link] – Jesramz

+0

शायद उपयोगकर्ता पर 'user = form.save() 'से पहले, मैं' new_user.groups.add जोड़ सकता हूं (Group.objects.get (नाम = 'नियोक्ता')) 'और मैं पतला हूं के नए विचार में यह सब कुछ जरूरी है? चूंकि व्यू एक ऐसा फॉर्म कहता है जिसमें एक सहेजने वाली विधि है जो उपयोगकर्ता को पहले से ही बनाता है। [userena_forms] (https://github.com/bread-and-pepper/django-userena/blob/master/userena/forms.py) – Jesramz

+0

आपकी टिप्पणी के लिए धन्यवाद, जांचें कि यह आपके लिए काम करता है – StefanoP

संबंधित मुद्दे