"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > संबंधित तालिकाओं के साथ काम करते समय आंतरिक जुड़ाव प्रभाव प्राप्त करने के लिए Django की `select_related` पद्धति का उपयोग कैसे किया जा सकता है?

संबंधित तालिकाओं के साथ काम करते समय आंतरिक जुड़ाव प्रभाव प्राप्त करने के लिए Django की `select_related` पद्धति का उपयोग कैसे किया जा सकता है?

2024-11-18 को प्रकाशित
ब्राउज़ करें:130

How can Django\'s `select_related` method be used to achieve an inner join effect when working with related tables?

Django में आंतरिक जुड़ाव: संबंधित तालिकाओं को कनेक्ट करना

Django में कई संबंधित तालिकाओं से डेटा प्रदर्शित करने के लिए, एक आंतरिक जुड़ाव अक्सर आवश्यक होता है। इस लेख में, हम यह पता लगाएंगे कि Django के ORM (ऑब्जेक्ट-रिलेशनल मैपर) का उपयोग करके आंतरिक जुड़ाव कैसे किया जाए।

मॉडल रिलेशनशिप

models.py में प्रदान किया गया कोड निम्नलिखित तालिका संबंधों को परिभाषित करता है:

  • देश से देशराज्य (विदेशी) कुंजी)
  • देश राज्य से शहर (विदेशी कुंजी)
  • देश, देश राज्य और शहर (विदेशी कुंजी) के लिए प्रकाशन

इनर जॉइन चयन_संबंधित का उपयोग करना

आंतरिक जुड़ाव प्रभाव प्राप्त करने के लिए, Django की चयन_संबंधित विधि को नियोजित किया जा सकता है। यह प्राथमिक ऑब्जेक्ट के साथ-साथ संबंधित ऑब्जेक्ट का पूर्व-चयन करता है, जिससे संबंधित डेटा तक पहुंचने के लिए आवश्यक डेटाबेस क्वेरी की संख्या कम हो जाती है।

views.py में, आंतरिक जुड़ाव करने के लिए निम्नलिखित कोड का उपयोग किया जा सकता है:

pubs = publication.objects.select_related('country', 'country_state', 'city')

जेनरेटेड SQL का निरीक्षण

str(pubs.query) का उपयोग करके, जेनरेट की गई SQL क्वेरी का निरीक्षण किया जा सकता है। यह प्रदान की गई SQL क्वेरी के समान होगा, जिसमें तालिकाओं के बीच आंतरिक जोड़ होंगे:

SELECT "publication"."id", "publication"."title", ..., "country"."country_name", ...  
FROM "publication" 
INNER JOIN "country" ON ( "publication"."country_id" = "country"."id" ) 
INNER JOIN "countrystate" ON ( "publication"."countrystate_id" = "countrystate"."id" ) 
INNER JOIN "city" ON ( "publication"."city_id" = "city"."id" ) 

संबंधित डेटा तक पहुंच

इनर जॉइन के बाद, संबंधित डेटा को संबंधित मॉडल ऑब्जेक्ट विशेषताओं के माध्यम से एक्सेस किया जा सकता है। उदाहरण के लिए, प्रत्येक प्रकाशन के लिए शहर का नाम प्रदर्शित करने के लिए:

{% for p in pubs %}
     {{ p.city.city_name}}  # p.city has been populated in the initial query
     # ...
{% endfor %}

Django के चयन_संबंधित का उपयोग करके, संबंधित तालिकाओं से डेटा पुनर्प्राप्त करने, डेटाबेस क्वेरी को कम करने और प्रदर्शन में सुधार करने के लिए आंतरिक जुड़ाव को कुशलतापूर्वक कार्यान्वित किया जा सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3