2009-12-03 18 views

उत्तर

3

आप हमेशा ही this line को संशोधित कर सकते हैं:

new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'], 
             password=self.cleaned_data['password1'], 
             email=self.cleaned_data['email'], 
             profile_callback=profile_callback, 
             send_email = False) 

या आप के लिए this line को बदल सकता है: बल्कि पंजीकरण एप्लिकेशन को संशोधित करने से

def create_inactive_user(self, username, password, email, 
         send_email=False, profile_callback=None): 
+2

को आप हालांकि activate_user कॉल करने की आवश्यकता (या किसी उपयोगकर्ता के खाते से बेकार हो जाएगा) – Jiaaro

+1

Django से रजिस्टर के नए संस्करण में, फ़ाइल forms.py नहीं करता ' इस तरह से अब तक टी। इस लिंक को जांचें: http://bitbucket.org/ubernostrum/django-registration/src/tip/registration/forms.py – anhtran

+0

यह कोड को संशोधित किए बिना करना वास्तव में आसान है। ओह तस्वीर। मुझे नहीं पता था कि यह जवाब कितना पुराना था ... – teewuane

1

, क्यों नहीं बस उपयोगकर्ता same way django-registration does सक्रिय करें:

user.is_active = सच user.save() profile.activation_key = "ALREADY_ACTIVATED" profile.save()

यह को देखने के बाद और भी अधिक ... मुझे लगता है कि क्या आप चाहते हैं दोनों का उपयोग करने के लिए है समाधान की। शायद, इसके बाद के संस्करण कोड जोड़ सिर्फ परिवर्तन डोमिनिक ने सुझाव दिया के बाद (हालांकि मैं संकेतों का उपयोग कर, या प्रपत्र यदि संभव हो तो उपवर्गीकरण सुझाव है)

ठीक अंतिम उत्तर:

new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'], 
            password=self.cleaned_data['password1'], 
            email=self.cleaned_data['email'], 
            profile_callback=profile_callback, 
            send_email = False) 
RegistrationProfile.objects.activate_user(new_user.activation_key) 
+0

क्या मुझे यह गलत लगता है? मैंने अपने कोड को आजमाया नहीं है, बस django-पंजीकरण में कोड को देखें। –

+0

नहीं, मैंने वास्तव में सिर्फ अपना जवाब संपादित किया क्योंकि मुझे लगता है कि हमारे दोनों समाधान आवश्यक हैं :) – Jiaaro

+0

यह कहां जाता है? क्या आप django-पंजीकरण कोड को संशोधित किए बिना ऐसा करने के तरीके के बारे में जानते हैं? मैं उपयोगकर्ता के निर्माण के संकेत के रूप में सोच रहा हूं .. – teewuane

6

बेहतर पर समस्या को ठीक करने स्वचालित रूप से उपयोगकर्ता को सक्रिय करने के लिए आदेशों को कॉल करके इसे पट्टी से रूट करें।

पंजीकरण models.py के लिए इस विधि जोड़ें:

def create_active_user(self, username, email, password, 
          site): 
     """ 
     Create a new, active ``User``, generate a 
     ``RegistrationProfile`` and email its activation key to the 
     ``User``, returning the new ``User``. 
     """ 
     new_user = User.objects.create_user(username, email, password) 
     new_user.is_active = True 
     new_user.save() 

     registration_profile = self.create_profile(new_user) 

     return new_user 
    create_active_user = transaction.commit_on_success(create_active_user) 

फिर, संपादित करें पंजीकरण/बैकएंड/चूक/init .py और रजिस्टर() विधि पाते हैं।

#new_user = RegistrationProfile.objects.create_inactive_user(username, email, 
                  #password, site) 
new_user = RegistrationProfile.objects.create_active_user(username, email, 
                  password, site) 
+0

मैंने आपकी प्रक्रिया का पालन किया लेकिन जब मैं उपयोगकर्ता में प्रवेश करता हूं तो यह सक्रिय नहीं होता है। – XMen

13

Django पंजीकरण की वर्तमान टिप संस्करणों में कोई ईमेल के साथ एक सरल बैकएंड है और आप कार्यप्रवाह आप चाहते हैं निर्दिष्ट करने के लिए अपने स्वयं के बैकएंड लिख सकते हैं:

बदलें अपनी नई विधि कॉल करने के लिए निम्न । प्रलेखन के लिए यहां https://bitbucket.org/ubernostrum/django-registration/src/fad7080fe769/docs/backend-api.rst देखें।

ईमेल के बिना सरल एक का उपयोग करने के लिए, बस इस बैकएंड को इंगित करने के लिए अपना urls.py बदलें, उदाहरण के लिए।

(r'^accounts/', include('registration.backends.simple.urls')),  
+0

यह सही जवाब है –

7

this method का प्रयोग क्यों नहीं और केवल साधारण बैकएंड कि Django पंजीकरण के बजाय डिफ़ॉल्ट बैकएंड के साथ आता है का उपयोग करें?

नया काम प्रवाह होगा ... 1. एक उपयोगकर्ता पंजीकरण फॉर्म भरकर साइन अप करता है। 2. उपयोगकर्ता का खाता बनाया गया है और तुरंत सक्रिय है, बिना मध्यवर्ती पुष्टि या सक्रियण चरण के। 3. नया उपयोगकर्ता तुरंत लॉग इन है।

तो आपके मुख्य यूआरएल पर।py आप बदल जाएगा:

url(r'^accounts/', include('registration.backends.default.urls')), 

url(r'^accounts/', include('registration.backends.simple.urls')), 
संबंधित मुद्दे