2009-07-02 14 views
14

में पंजीकरण के साथ प्रोफाइल सहेजना Django-Register में यह कहता है कि जब आप उपयोगकर्ता को सहेजते हैं तो आप एक कस्टम प्रोफ़ाइल सहेज सकते हैं।
लेकिन मुझे नहीं पता कि दस्तावेज मुझे क्या करने के लिए कह रहा है। यहाँ वे क्या कहते है:Django- पंजीकरण

के साथ एक कस्टम उपयोगकर्ता प्रोफ़ाइल के निर्माण को सक्षम करने के User (जैसे, मॉडल AUTH_PROFILE_MODULE सेटिंग में निर्दिष्ट), एक समारोह जो बना सकते हैं और इस बात का एक उदाहरण को बचाने के लिए कैसे जानता है परिभाषित उपयुक्त डिफ़ॉल्ट मानों के साथ मॉडल, और इसे कीवर्ड तर्क profile_callback के रूप में पास करें। यह समारोह एक कीवर्ड तर्क को स्वीकार करना चाहिए:

user

User प्रोफ़ाइल से संबंधित है।

क्या कोई मुझे उस फ़ंक्शन का उदाहरण दे सकता है जिसे बनाने की आवश्यकता है और इसे तर्क के रूप में कैसे पास किया जाए?

उत्तर

8

आप अपनी urls.py फ़ाइल में कॉलबैक फ़ंक्शन पास कर सकते हैं।

from mysite.profile.models import UserProfile 


url(r'^accounts/register/$',  'registration.views.register', 
     { 'profile_callback': UserProfile.objects.create }, name = 'registration_register'), 

आवश्यकतानुसार UserProfile.objects.create के लिए अपना स्वयं का फ़ंक्शन बदलें। पंजीकरण और सक्रियण -

+0

ठीक है, मुझे ऐसा करने की ज़रूरत है ... लेकिन मैं रजिस्टर फॉर्म के नमूना स्थान में प्रोफ़ाइल फॉर्म को कितना बीमार दिखा सकता हूं और डेटा को सहेज सकता हूं ... मुझे नहीं पता कि मैं खो गया हूं ... धन्यवाद – Asinox

+1

django- पंजीकरण 0.8+ में अब मामला नहीं है – Gezim

6

यह this blogpost में शामिल और another question on the same issue

Django पंजीकरण करने के लिए अपने जवाब में विस्तार किया गया है हो रहा विभिन्न घटनाओं में एक संकेत भेजता है। उन बिंदुओं में से आप उस सिग्नल पर एक हुक बना सकते हैं जिसे उपयोगकर्ता दिया जाएगा और वस्तुओं का अनुरोध किया जाएगा - वहां से आप उस उपयोगकर्ता के लिए प्रोफ़ाइल बना सकते हैं।

Django पंजीकरण से संकेत

#registration.signals.py 
user_registered = Signal(providing_args=["user", "request"]) 

कोड प्रोफाइल

#signals.py (in your project) 
user_registered.connect(create_profile) 

def create_profile(sender, instance, request, **kwargs): 
    from myapp.models import Profile 
    #If you want to set any values (perhaps passed via request) 
    #you can do that here 

    Profile(user = instance).save() 
संबंधित मुद्दे