मुझे Django उपयोगकर्ता मॉडल को विस्तारित करके UserProfile मॉडल बनाते समय OneToOneField (उपयोगकर्ता) या ForeignKey (उपयोगकर्ता, अद्वितीय = True) का उपयोग करने के बारे में विवादित जानकारी मिल रही है।Django: उपयोगकर्ता को विस्तारित करते समय, OneToOneField (उपयोगकर्ता) या ForeignKey (उपयोगकर्ता, अद्वितीय = सही) का उपयोग करने के लिए बेहतर?
बेहतर इस ?:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
उपयोग करने के लिए है या यह
class UserProfile(models.Model):
user = models.OneToOneField(User)
Django Doc निर्दिष्ट करता OneToOneField ?:, जबकि Django Book example ForeignKey उपयोग करता है।
पूर्व पोस्ट में, बेनेट कुछ कारण वह बजाय ForeignKey उपयोग करने के लिए बंद कर देता है:
James Bennett भी दो ब्लॉग पोस्ट है कि परस्पर विरोधी उदाहरण प्रदान करने के साथ है OneToOneField का, लेकिन मुझे काफी कुछ नहीं मिलता है, खासकर जब मैं अन्य पोस्ट देखता हूं जो विपरीत की सिफारिश करते हैं।
मैं आपकी वरीयता जानने के लिए उत्सुक हूं और क्यों। या, क्या इससे कोई फर्क पड़ता है?
मुझे उपयोगकर्ता प्रोफाइल के बारे में बेनेट के पहले लेख में कुछ भी नहीं दिखाई देता है। –
@Ignacio - क्षमा करें, मैंने गलत आलेख का एक लिंक जोड़ा है। यह "यूजर मॉडल का विस्तार" पर अपनी पोस्ट के लिए होना चाहिए था। मैंने लिंक को सही किया है। इस पर ध्यान दिलाने के लिए धन्यवाद। –
मेरे लिए, http://stackoverflow.com/questions/5870537/whats-the-difference-between-django-onetoonefield-and-foreignkey समझने के लिए और अधिक स्पष्ट है –