में विभिन्न प्रकार के उपयोगकर्ताओं के लिए मॉडलिंग खाते कहें कि आपके पास एक ऐसा एप्लिकेशन है जहां विभिन्न प्रकार के उपयोगकर्ता साइन इन कर सकते हैं: फर्म, वकील और ग्राहक। एक फर्म के कई वकील हैं; एक वकील के कई ग्राहक हैं। एक फर्म उपयोगकर्ता के विचार, निश्चित रूप से, एक वकील उपयोगकर्ता के विचारों से अलग हैं; दोनों ग्राहक उपयोगकर्ता से अलग हैं।Django
आप तीन अलग-अलग उपयोगकर्ताओं को कैसे मॉडल करेंगे? मैं निम्नलिखित दृष्टिकोण में सोच सकते हैं: एक User
को ForeignKey
साथ
तीन विभिन्न मॉडलों, अपने स्वयं के क्षेत्रों, जैसे के साथ प्रत्येक:
class Firm(models.Model):
user = models.ForeignKey(User)
class Lawyer(models.Model):
user = models.ForeignKey(User)
specialty = models.CharField(max_length=100)
class Client(models.Model)
user = modelsForeignKey(User)
अब आप बना सकते हैं, उदाहरण के लिए, एक अलग मॉडल के रूप में विचार-विमर्श के दो का उपयोग कर ForeignKeys
: Lawyer
और Client
; आप एक से Consultation
के साथ मॉडल Resource
बनाकर परामर्श (जैसे दस्तावेज़, या सामान जैसी) में संसाधन भी जोड़ सकते हैं।
यह दृष्टिकोण यह मुश्किल उपयोगकर्ताओं के बीच भेद करने के लिए बनाता है: आप कैसे पता चलेगा कि कोई user
एक Firm
है, उदाहरण के लिए - आप डेटाबेस कई बार क्वेरी या सामान्य User
ऑब्जेक्ट में एक Profile
सौंपने होंगे।
तुम भी जोड़ सकते हैं केवल User
करने के लिए एक Profile
और एक Role
में शामिल हैं, और फिर आप विचारों और प्रमाणीकरण user.get_profile().role
के आधार पर चैनल।
आप इस समस्या से कैसे निपटेंगे?
हाँ, मुझे लगता है कि मुझे इसके साथ जाना होगा। धन्यवाद! (सजावटी के बारे में अच्छा विचार) – Escualo