2012-12-31 22 views
6

मेरे पास django auth पर आधारित प्रमाणीकरण प्रणाली है, लेकिन मुझे उपयोगकर्ताओं को जानकारी जोड़नी है। django 1.5 में ऐसा करने का सबसे अच्छा तरीका क्या है? (1.4 में मैं उपयोगकर्ता के लिए ऑनटोन से जुड़ी प्रोफाइल का उपयोग कर रहा था, लेकिन अब?)Django 1.5: उपयोगकर्ता और अतिरिक्त जानकारी

उत्तर

9

Django 1.5 extendable User models है। असल में, आप एक सार आधार उपयोगकर्ता मॉडल का विस्तार कर सकते हैं, अपने खेतों और कुछ भी जोड़ सकते हैं और वहां से इसका उपयोग कर सकते हैं।

बेस मॉडल में प्रमाणीकरण के लिए मूलभूत बातें हैं - पासवर्ड फ़ील्ड और अंतिम लॉगिन के समय के लिए एक फ़ील्ड। आपको अपना खुद का उपयोगकर्ता नाम फ़ील्ड भी बनाना होगा। यदि आप वर्तमान Django उपयोगकर्ता मॉडल (उपयोगकर्ता नाम, पहला नाम, अंतिम नाम इत्यादि) के साथ कुछ आरामदायक हैं, तो यह AbstractUser के रूप में भी मौजूद है और आप AbstractBaseUser के बजाय इसे बढ़ा सकते हैं और अपने स्वयं के फ़ील्ड जोड़ सकते हैं।

+1

हाँ मैंने इसे दस्तावेज़ पर पढ़ा। लेकिन मैं एक सारबेसबेसर को लागू नहीं करना चाहता क्योंकि मुझे जो चाहिए वह पहले से ही उपयोगकर्ता में है। मुझे केवल चीजें जोड़ने हैं। तो, उसे कैसे कोड करें? – tapioco123

+0

उपयोगकर्ता मूल रूप से सार तत्व के समान है, लेकिन एक स्वैपबल एट्रिब्यूट (जो भी इसके लिए है) के साथ https://github.com/django/django/blob/master/django/contrib/auth/models.py#L457। तो बस अपना खुद का मॉडल AbstractUser से प्राप्त करें। – justinas

+0

मुझे विरासत में मिला, लेकिन syncdb पर मुझे follwing त्रुटियां मिलीं: कमांडरर: एक या अधिक मॉडल मान्य नहीं किए गए: account.user: संबंधित एम 2 एम फ़ील्ड 'Group.user_set' के साथ m2m फ़ील्ड 'समूह' के लिए एक्सेसर। 'समूह' की परिभाषा में एक संबंधित_नाम तर्क जोड़ें। account.user: m2m फ़ील्ड 'user_permissions' के लिए एक्सेसर संबंधित m2m फ़ील्ड 'Permission.user_set' के साथ संघर्ष करता है। 'User_permissions' की परिभाषा में एक संबंधित_नाम तर्क जोड़ें। auth.user: m2m फ़ील्ड 'समूह' के लिए एक्सेसर संबंधित एम 2 एम फ़ील्ड 'Group.user_set' के साथ संघर्ष करता है। 'समूह' की परिभाषा में एक संबंधित_नाम तर्क जोड़ें। – tapioco123

0

django 1.5 में आपको custom user model बनाना चाहिए। उपयोगकर्ता प्रोफाइल अब बहिष्कृत कर रहे हैं।

+0

कहां कहता है कि "प्रोफ़ाइल" के साथ उपयोगकर्ता मॉडल को विस्तारित किया गया है? 'विकास' django दस्तावेज़ और 1.7 दस्तावेज़ दोनों इसे पहले समाधान के रूप में प्रस्तुत करते हैं, और AUTH_USER_MODEL कुछ बहुत भारी चेतावनियों और प्रभावों के साथ आता है ... – GreenAsJade

+0

'AUTH_PROFILE_MODULE' [django 1.5 के रूप में बहिष्कृत है] (https: //docs.djangoproject .com/en/1.6/रेफरी/सेटिंग्स/# Auth-प्रोफाइल मॉड्यूल)। – dgel

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