मेरे पास दो मॉडल हैं जिनमें एक से दूसरे में विदेशीकी शामिल है।
class M1(models.Model):
name = models.TextField()
class M2(models.Model):
name = models.TextField()
parent = models.ForeignKey(M1, related_name='children')
मैं प्रदर्शन में सुधार के लिए कोड को दोबारा कर रहा हूं।
क्या इन 2 ओआरएम प्रश्नों के बीच कोई प्रदर्शन अंतर होगा।
m1 = M1.objects.get(id=1)
children = m1.children.all()
तथा
children = M2.objects.filter(parent_id=1)
1 उत्तर
क्या इन 2 ओआरएम प्रश्नों के बीच कोई प्रदर्शन अंतर होगा?
हां. पूर्व में, आप M1
ऑब्जेक्ट लाने के लिए एक प्रश्न बनाते हैं, और फिर आप दूसरे के लिए QuerySet
बनाते हैं। यदि आप बाद में QuerySet
का "उपभोग" करते हैं, तो यह इस प्रकार दो प्रश्न करेगा।
उत्तरार्द्ध में आप केवल एक क्वेरीसेट का निर्माण करते हैं, और इस प्रकार केवल एक क्वेरी बनाते हैं यदि आप क्वेरीसेट का उपभोग करते हैं।
यदि आप इस प्रकार M1
ऑब्जेक्ट में रुचि नहीं रखते हैं, तो बाद वाले का उपयोग करना बेहतर है।
संबंधित सवाल
नए सवाल
django
Django एक ओपन-सोर्स सर्वर-साइड वेब एप्लीकेशन फ्रेमवर्क है जिसे पायथन में लिखा गया है। यह कम कोड, विशेष-अतिरेक पर विशेष ध्यान देने और निहित से अधिक स्पष्ट होने के साथ जटिल डेटा-संचालित वेबसाइटों और वेब एप्लिकेशन बनाने के लिए आवश्यक प्रयास को कम करने के लिए डिज़ाइन किया गया है।