इस बारे में उत्सुक है कि कैसे django ओआरएम क्वेरी अनुकूलन प्राप्त करता है - पायथन, django

मैं कोई अजगर विशेषज्ञ नहीं हूं और मैं उत्सुक हूं कि django निम्नलिखित क्वेरी को कैसे अनुकूलित करता है

Model.objects.filter(field = "abc")[0]

किसी तरह django समझदारी से जोड़ देगा "limit 1"जैसे SQL क्वेरी"select * from model where field = "abc" limit 1"

उत्तर:

उत्तर № 1 के लिए 1

यह है क्योंकि Model.objects.filter(...) doesn "टी वास्तव में एक सूची वापस, यह एक लौटाता है क्वेरी ऑब्जेक्ट. जब आप qset[0], यह कॉल करता है __getitem__ क्वेरीसेट पर विधि, जो जोड़ता है limit 1 और इसे निष्पादित करता है। यहाँ "रों उस विधि का स्रोत; जब परिणाम पहले से ही कैश किया गया है या नहीं और विभिन्न मामलों के लिए तर्क है।


संबंधित सवाल
सबसे लोकप्रिय