मैं वर्तमान में एक Django साइट विकसित कर रहा हूं जिसमें उपयोगकर्ता एकाधिक 'खाते' रख सकते हैं, ताकि वे साइट के माध्यम से बातचीत करते समय अलग-अलग सार्वजनिक प्रोफाइल के बीच सहजता से स्विच कर सकें। जो मैं डिजाइन कर रहा हूं वह प्रति व्यक्ति एकाधिक रजिस्ट्रेशन को आकर्षित करने की संभावना है (और निराश नहीं होगा), मैं बस इसे इस तरह से पेश करना चाहता हूं क्योंकि उपयोगकर्ता प्रोफ़ाइल को एक साथ बंधे रख सकते हैं, आसानी से स्विच कर सकते हैं और केवल लॉग इन करना होगा एक बारमें।Django मल्टी-उपयोगकर्ता लॉगिन - सर्वोत्तम दृष्टिकोण?
दो दृष्टिकोण मैं सोचा है अब तक शामिल हैं:
एक (
User
मॉडल +SiteProfile
मॉडल) जोड़ी और प्रति व्यक्ति कईPublicProfile
मॉडल।AUTH_PROFILE_MODULE
SiteProfile
मॉडल पर इंगित करने के लिए सेट है। इसके साथ समस्या यह है कि मैं प्रति-ऑब्जेक्ट अनुमतियों का आसानी से उपयोग नहीं कर सकता: इन्हेंUser
ऑब्जेक्ट पर सेट किया जाएगा, न कि सार्वजनिक प्रोफ़ाइल, इस प्रकार "PublicProfileA" के लिए एक पृष्ठ देखने की अनुमति भी लागू की जाएगी जब उपयोगकर्ता मजाक कर रहा हो "पब्लिकप्रोफाइल बी" के रूप में।एक
Account
मॉडल और कई (User
मॉडल +UserProfile
मॉडल) प्रति व्यक्ति जोड़े।AUTH_PROFILE_MODULE
UserProfile
मॉडल पर इंगित करने के लिए सेट है। इसमें इरादे के अनुसार काम करने वाली अनुमतियों का अतिरिक्त लाभ होगा, और मेरे पास एक कस्टम बैकएंड हो सकता है जो उपयोगकर्ताओं को प्रमाणीकृत करके उपयोगकर्ताओं को स्विच कर देगा यदि वे वर्तमान में किसी अन्य उपयोगकर्ता के रूप में लॉग इन हैं, तोAccount
ऑब्जेक्ट विदेशी कुंजी के रूप में है । प्रमाणीकरणAccount
ऑब्जेक्ट पर फ़ील्ड पढ़ने से होता है, जिसका अर्थ यह होगा कि प्रत्येकUser
ऑब्जेक्ट परpassword
फ़ील्ड बर्बाद हो जाएगी।उपर्युक्त के रूप में, लेकिन से
Account
उप-वर्गिंग। हालांकि इसके खिलाफ दृढ़ता से सलाह दी गई है (कारणों के लिए अस्पष्ट)।
क्या इसमें कोई समस्या या बेहतर दृष्टिकोण है? आखिरकार, क्या मुझे अंतर्निहित User
मॉडल का उपयोग एक-प्रति-व्यक्ति मॉडल के रूप में करना चाहिए जो सार्वजनिक सामना करने वाले प्रोफाइल के समूह की पहचान करता है (जिनमें से इन प्रोफाइलों में एफके वापस User
ऑब्जेक्ट पर है), या इसे प्रोफ़ाइल के रूप में उपयोग करें, प्रत्येक व्यक्ति के लिए एक Account
ऑब्जेक्ट पर वापस लिंक करना?
दिलचस्प सवाल। क्या आप इन अलग-अलग प्रोफाइलों की पेशकश के बारे में थोड़ा और संदर्भ प्रदान कर सकते हैं? जैसे यदि आप ईकॉमर्स साइट बना रहे थे, तो आपके उपयोगकर्ताओं के पास व्यक्तिगत खाते और कॉर्पोरेट खाते हो सकते थे। यह उदाहरण छूट नीति, आदेश मात्रा/मात्रा इत्यादि के लिए प्रभावित होगा। यह जानकारी एक और सूचित सुझाव देने में मदद करेगी। – rantanplan
वाह, बहुत देर हो चुकी है! यह एक सामाजिक साइट के लिए है, एक समारोह एक भूमिका निभा तत्व है। सभी खातों के संबंध में 'बराबर' हैं, उनके पास अलग-अलग प्रकार नहीं होंगे, वहां कोई कॉपरेट या व्यक्तिगत खाता, बस 'सदस्य' जैसी कोई चीज़ नहीं है। इसके अलावा, कस्टम प्रमाणीकरण बैकएंड वैसे भी लिखे जाएंगे, क्योंकि अंतर्निहित डीजेगो ऑथ बैकएंड मेरी आवश्यकताओं को पूरा नहीं करता है। उम्मीद है की वो मदद करदे! –