मैं एक निश्चित अनुप्रयोग विकसित करता हूं, जिसे मैंने निर्दिष्ट डेटाबेस और मॉडल स्कीमा के साथ पाया। मैं Django संस्करण 1.8.2 का उपयोग कर रहा हूँ। नीचे एक समस्या प्रस्तुत की गई है। अनावश्यक क्षेत्रों को छोड़ दिया गया है, उदाहरण के प्रयोजनों के लिए मॉडल नामों का आविष्कार किया गया है, क्योंकि मैं इसका खुलासा नहीं कर सकता। एक लंबे समय के बाद एक परियोजना संभावना एक ही नाम एक के कई है, लेकिन विभिन्न विदेशी कुंजी बी के साथ इस विशेष मामले में हो सकता है निम्नलिखित मॉडल एक पर विचार करें और बीप्राथमिक कुंजी बनाने के लिए Django में दो फ़ील्ड होते हैं?
class B (models.Model):
name = models.CharField(max_length=100)
class A (models.Model):
name = models.CharField(max_length=100, primary_key=True)
related_name = models.ForeignKey(B, null=True, blank=True)
, मैं चाहते हैं प्राथमिक कुंजी "ए" मॉडल में दो फ़ील्ड शामिल हैं: नाम और संबंधित नाम। इस तरह की एक कुंजी बनाने के लिए django में दो फ़ील्ड होते हैं?
इस्तेमाल कर सकते हैं यह संभव है 'A' की प्राथमिक कुंजी बदलने के लिए Django डिफ़ॉल्ट' id' बजाय होने के लिए? यह स्पष्ट फिक्स की तरह लगता है। –
हाय :-) आपके उत्तर के लिए धन्यवाद। यह एक अच्छा समाधान है, लेकिन मेरे मामले में कई तालिकाओं में एक विदेशी कुंजी तालिका "ए" है और डिफ़ॉल्ट आईडी में बदलना वास्तव में एक बड़ा प्रयास होगा। इसके अलावा, 'एबजेक्ट्सजेट (पीके = "कुछ") जैसे प्रश्नों का उपयोग करके बहुत सारे कोड और प्राथमिक कुंजी के प्रकार को बदलने के लिए बहुत सारे काम की आवश्यकता होती है। इस कारण से, मैं ऐसे समाधान की तलाश में हूं जो कुंजी प्रकार को नहीं बदलेगा। आधार में बहुत सा साल हैं। –
ठीक है। उस मामले में मुझे नहीं लगता कि इसे डीजेंगो में हल किया जा सकता है। Django प्रत्येक उदाहरण के लिए एक एकल, अद्वितीय प्राथमिक कुंजी की आवश्यकता है। भले ही आप एक समग्र प्राथमिक कुंजी का उपयोग कर सकें, मुझे यकीन नहीं है कि यह एक अच्छा विचार है जब पीके में से एक फ़ील्ड एक शून्य विदेशी कुंजी है। –