मैं Django में कई क्वेरीज़ को जोड़ना या श्रृंखला बनाना चाहता हूं, प्रत्येक के आदेश को संरक्षित करना (परिणाम नहीं)। मैं परिणाम को पेजेट करने के लिए एक थर्ड-पार्टी लाइब्रेरी का उपयोग कर रहा हूं, और यह केवल सूचियों या क्वेरीसेट स्वीकार करता है। मैंने इन विकल्पों का प्रयास किया है:व्यक्तिगत आदेश को सुरक्षित रखने वाले Django क्वेरीसेट्स को कैसे चेन करें
क्वेरीसेट में शामिल हों: व्यक्तिगत क्वेरीसेट में ऑर्डरिंग को सुरक्षित नहीं करता है, इसलिए मैं इसका उपयोग नहीं कर सकता।
result = queryset_1 | queryset_2
itertools का उपयोग करना: श्रृंखला वस्तु पर list()
कॉलिंग वास्तव में क्वेरीसमूहों मूल्यांकन करता है और इस भूमि के ऊपर का एक बहुत हो सकता है। है ना?
result = list(itertools.chain(queryset_1, queryset_2))
आपको कैसे लगता है कि मुझे जाना चाहिए?
मैं एक ही मॉडल कई प्रश्नों में splitted पर एक जटिल खोज के कर रहा हूँ। प्रत्येक एक रिकॉर्ड को पुनर्प्राप्त करता है जो एक निश्चित स्थिति से मेल खाता है और प्रत्येक को किसी विशेष तरीके से आदेश दिया जाता है। परिणाम में प्रत्येक क्वेरीसेट के परिणाम शामिल होना चाहिए और इनमें से प्रत्येक क्वेरीसेट का क्रम बनाए रखना चाहिए। इसलिए, मैं यहां 'क्यू' ऑब्जेक्ट्स का उपयोग नहीं कर सकता, क्योंकि मुझे एक ही क्वेरी पर कई 'order_by() 'करने की अनुमति नहीं दी जाएगी। मैं डाटाबेस तक पहुंचने से बचने के लिए, प्रत्येक क्वेरीसेट पर 'सूची() 'को कॉल करने से बचाना चाहता हूं, स्मृति में बहुत सारी ऑब्जेक्ट प्राप्त करना चाहता हूं। – Caumons
क्या आपको लगता है कि एक शुद्ध SQL क्वेरी लिखना संभव है जो पंक्तियों का एक सेट सेट करेगा और ठीक वैसे ही फ़िल्टर किया जाएगा जैसा आप चाहते हैं? यदि नहीं, तो एक एकल क्वेरीसेट इसे भी नहीं कर सकता है।यदि आप दो परिणाम सेट को असंगत तरीकों से सेट करते हैं, उदाहरण के लिए। यदि आप जटिल रूप से दो अलग-अलग आदेशित परिणाम सेटों से जुड़ने के लिए इस असंगतता के आसपास काम करते हैं, तो ऐसा कुछ नहीं है जो django ORM कर सकता है। – Demiurge
मैं शुद्ध एसक्यूएल में प्रवेश नहीं करना चाहता जितना मैं Django के ORM के साथ रह सकता हूं। मैं बस यह देखने के लिए कह रहा था कि स्मृति में हजारों ऑब्जेक्ट्स से बचने के लिए सीमित क्वेरी के साथ मैं क्या कर रहा हूं (वर्तमान में दूसरा उदाहरण उपयोग कर रहा हूं) के लिए बेहतर विकल्प है या नहीं। – Caumons