यह काफी आसान लगता है, लेकिन सभी Django क्वेरीज़ 'SELECT *'Django क्वेरी द्वारा दिए गए कॉलम को कैसे सीमित करें?
मैं केवल फ़ील्ड का सबसेट लौटने वाली क्वेरी कैसे बना सकता हूं?
यह काफी आसान लगता है, लेकिन सभी Django क्वेरीज़ 'SELECT *'Django क्वेरी द्वारा दिए गए कॉलम को कैसे सीमित करें?
मैं केवल फ़ील्ड का सबसेट लौटने वाली क्वेरी कैसे बना सकता हूं?
Django 1.1 में करने के लिए एक .values("column1", "column2", ...)
के बाद, आप defer('col1', 'col2')
उपयोग कर सकते हैं क्वेरी से कॉलम बाहर करने के लिए, या only('col1', 'col2')
केवल स्तंभों का एक विशिष्ट सेट प्राप्त करने के लिए। the documentation देखें।
values
कुछ अलग करता है - यह केवल आपके द्वारा निर्दिष्ट कॉलम प्राप्त करता है, लेकिन यह मॉडल उदाहरणों के सेट के बजाय शब्दकोशों की एक सूची देता है।
संलग्न आपकी क्वेरी
एक नोट: यदि आप विशिष्ट वस्तु प्राप्त करने के लिए '.filter()' के बजाय '.get()' का उपयोग करते हैं, और विशिष्ट कॉलम पुनर्प्राप्त करना चाहते हैं, तो आपको सुनिश्चित करना होगा कि '.values (' field1 '। ..) ''get() 'विधि से पहले निर्दिष्ट है। यदि यह बाद में है, तो यह एक त्रुटि उत्पन्न करता है क्योंकि यह ऑब्जेक्ट प्राप्त करता है और फिर 'ऑब्जेक्ट्स 'प्रॉपर्टी के बजाय' मॉडल उदाहरण 'पर' .values () 'विधि को चलाने का प्रयास करता है। – Furbeenator
धन्यवाद, दोनों का उपयोग है। – philgo20
@ डैनियल, क्या आप जानते हैं कि प्रलेखन इन विधियों से बचने के लिए क्यों कहता है? यह कहता है कि उन्हें अंतिम उपाय होना चाहिए, और अन्य तरीकों को पहले थका जाना चाहिए। – Furbeenator
अच्छा सवाल ... – rom