2013-03-08 15 views
11

मैं django-पंजीकरण ऐप और Django 1.5 का उपयोग करता हूं। कैसे कस्टम उपयोगकर्ता मॉडल (Django में नया) बना सकते हैं और पंजीकरण के दौरान भी इस डेटा को बचाने के लिए (कृपया ध्यान दें कि मैं Django पंजीकरण उपयोग कर रहा हूँ):django-पंजीकरण ऐप और Django 1.5 कस्टम उपयोगकर्ता मॉडल

class CustomProfile(models.Model): 
    user = models.ForeignKey(User) 
    name = models.CharField(max_length=255) 
    bank = models.CharField(max_length=255) 
    address = models.CharField(max_length=255) 

?

+1

क्या आप इसे देखते थे? http://stackoverflow.com/questions/1072270/saving-profile-with-registration-in-django-registration – rafek

+0

@rafek मैं नए कस्टम उपयोगकर्ता मॉडल (Django 1.5 में नया) के साथ प्रयास करें – user2054574

उत्तर

9

डीजेंगो-पंजीकरण का मुख्य कांटा अब के लिए django 1.5 के साथ संगत नहीं है।

this pull request देखें।

  • पैच Django पंजीकरण के कोड:

    आप तीन विकल्प हैं। आप पुल अनुरोध से आवश्यक परिवर्तन प्राप्त कर सकते हैं।

  • एक अनौपचारिक कांटा का उपयोग करें जो पहले से ही पैच किया गया है। उदाहरण के लिए This one। मुख्य कांटा पर अपडेट के लिए
  • प्रतीक्षा ...
+1

मैंने अभी वर्तमान "ट्रंक" डाउनलोड किया है बिटबकेट से 'डीजेंगो-पंजीकरण' ऐप का संस्करण, और यह Django 1.5 के साथ काम करता है (जब मैं ऐप इंस्टॉल करने के लिए 'पाइप' का उपयोग करता था तो यह काम नहीं करता था)। डाउनलोड संस्करण संख्या 'VERSION = (0, 9, 0,' बीटा ', 1) 'है। – yellowcap

+1

शायद 'django-registration2'? मैंने इसे 'डीजेंगो-पंजीकरण' के बजाय अभी स्थापित किया है क्योंकि 'योक-वी डीजेंगो-पंजीकरण' केवल 'डीजेंगो-पंजीकरण 0.8' देता है जो Django == 1.5.1 – boldnik

4

यह link प्रक्रिया अच्छी तरह से बताते हैं और Django पंजीकरण के साथ काम करता 1.0

यहाँ

ऊपर कोड के अलावा कुछ अतिरिक्त संकेत दिए गए हैं।

पहला नाम models.py

def user_registered_callback(sender, user, request, **kwargs): 
profile = ExUserProfile(user = user) 
profile.is_human = bool(request.POST["is_human"]) 
user.first_name = request.POST["firstname"] 
user.save() 
profile.save() 

user_registered.connect(user_registered_callback) 

में और forms.py फ़ाइल

class ExRegistrationForm(RegistrationForm): 
    is_human = forms.BooleanField(label = "Are you human?:") 
    firstname = forms.CharField(max_length=30) 
    lastname = forms.CharField(max_length=30) 

अंत में बदल फार्म पर परिवर्तन उचित खाका बनाने को देखने के लिए अद्यतन करने के लिए। प्रोफ़ाइल एक फाइल अपने अनुप्रयोग में admin.py बुलाया बनाने और निम्न कोड

from django.contrib import admin 
from django.contrib.auth.models import User 
from django.contrib.auth.admin import UserAdmin 
from prof.models import ExUserProfile 

admin.site.unregister(User) 

class UserProfileInline(admin.StackedInline): 
    model = ExUserProfile 

class UserProfileAdmin(UserAdmin): 
    inlines = [ UserProfileInline, ] 

admin.site.register(User, UserProfileAdmin) 
+0

के साथ संगत नहीं है, क्या यह वास्तव में उपयोगकर्ता को नहीं बनाएगा और ExUserProfile उदाहरण? –

+1

हां, इसका उद्देश्य कस्टम उपयोगकर्ता मॉडल को उपयोगकर्ता ऑब्जेक्ट में ExUserProfile को जोड़कर और आवश्यक फ़ील्ड को सहेजकर बनाया गया है – timberlake

0

Django पंजीयन 1.0 हाल ही में जारी की गई है लिखना द्वारा व्यवस्थापक में देखा जा सकता है। कक्षा आधारित विचारों और Django 1.0 कस्टम उपयोगकर्ता मॉडल समर्थन के साथ इसे पूरी तरह से लिखा गया था। docs देखें।

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