में select_related का उपयोग करके विशिष्ट फ़ील्ड का चयन करना मेरे पास एक विदेशी कुंजी का उपयोग करके संबंधित दो मॉडल आलेख और ब्लॉग हैं। मैं आलेख निकालने के दौरान केवल ब्लॉग नाम चुनना चाहता हूं।Django
articles = Articles.objects.all().select_related('blog__name')
उत्पन्न क्वेरी से पता चलता है कि उसने ब्लॉग मॉडल से सभी फ़ील्ड चुने हैं। मैंने select_related के साथ केवल() और defer() का उपयोग करने की कोशिश की लेकिन दोनों काम नहीं कर पाए।
articles = Articles.objects.all().select_related('blog__name').only('blog__name', 'title', 'create_time')
ऊपर क्वेरी त्रुटि हुई: अमान्य फ़ील्ड नाम (रों) select_related में दी गई: विकल्प हैं: ब्लॉग
मैं एक प्रश्न कैसे जेनरेट करूं ताकि केवल लेख के खेतों और ब्लॉग का नाम चयन किया जाता है?
मैं यह संभव है नहीं लगता है - 'only' traversing संबंधों के किसी भी उदाहरण नहीं दिखा के लिये दस्तावेज जबकि' select_related' के लिये दस्तावेज केवल कई संबंधों traversing के उदाहरणों से पता चलता (यानी 'rel__rel', 'rel__field' नहीं)। ऐसा लगता है कि आप सबसे अच्छा कर सकते हैं 'articles = articles.objects.all()। select_related (' blog ')। केवल (' ब्लॉग ',' शीर्षक ',' create_time ') ' – Anentropic
क्या ऐसा करने का उद्देश्य है? प्रदर्शन अनुकूलन? हालांकि, आप इसे 'prefetch_related' का उपयोग करके कर सकते हैं, लेकिन इस तरह आप एक के बजाय 2 प्रश्नों के साथ समाप्त हो जाएंगे। 'Articles.objects.all()। Prefetch_related (प्रीफेच ('ब्लॉग', क्वेरीसेट = Blog.objects.all()। केवल ('नाम')))' – Todor
एकमात्र उद्देश्य प्रदर्शन को अनुकूलित करना था। मैं पहले से ही select_related का उपयोग कर रहा हूं, लेकिन यह उन सभी विशेषताओं को देता है जो बहुत सारी मेमोरी का उपभोग करते हैं। ऐसा करने के लिए कोई और रास्ता नहीं है? – RA123