python - django - convert a list back to a queryset -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 3 जवाब
मेरे पास बहुत सी रिकॉर्ड हैं कि मैं एक गणना मूल्य के आधार पर सॉर्ट करना चाहूंगा। उत्तर मिला ... ऐसा ही है:
सॉर्ट किया गया (Profile.objects.all (), key = lambda p: p.reputation)
पर इस तरह एक प्रोफ़ाइल वर्ग:
वर्ग प्रोफ़ाइल (models.Model): ... @प्रॉपर्टी डीएफ़ रिफ़ाइन (स्वयं): ...
दुर्भाग्य से जेनेरिक दृश्य एक क्वेरी ऑब्जेक्ट की अपेक्षा कर रहा है और अगर मैं इसे सूची प्रदान करता हूं तो त्रुटि फेंकता है
क्या ऐसा करने का कोई तरीका है जो कि एक क्वेरी
या ...
मैं एक किसी भी तरह एक क्वेरी के लिए सूची? डीजेंगो डॉक्स में ऐसा कुछ भी नहीं मिल सका।
मैं डेटा को denormalize नहीं होने की उम्मीद कर रहा हूं, लेकिन मुझे लगता है कि अगर मुझे करना होगा।
अपडेट / उत्तर:
ऐसा लगता है कि एक क्वेरी वापस प्राप्त करने का एकमात्र तरीका है यदि आप अपने सभी तर्क को एसक्यूएल क्वेरीज़ में प्राप्त कर सकते हैं।
जब यह संभव नहीं है, (मुझे लगता है) आपको डेटा denormalize की आवश्यकता
आप क्या कर सकते हैं:
- यदि आप एक सूची में अपनी सूची बनाई है, तो यह सब कुछ फिर से लाने के लिए होगा।
वर्णन करें कि
प्रतिष्ठा
फ़ील्ड की गणना कैसे की जाती है; किसी भी तरह से डेटाबेस में डेटा को संभवतः संभव है। - किसी क्वेरी ऑब्जेक्ट की आवश्यकता नहीं होने के लिए दृश्य को संशोधित करें यदि अतिरिक्त फ़िल्टरिंग आदि करने की आवश्यकता होती है तो यह किसी भी आदेश से पहले किया जाना चाहिए, क्योंकि आदेश कम प्रविष्टियों के साथ कम समय लगेगा (और कम डेटा डेटाबेस से प्राप्त होगा।) तो आप फ़िल्टर्ड क्वेरी ऑब्जेक्ट को सॉर्ट करने के लिए भेज सकते हैं इसे टेम्पलेट पर भेजने से पहले कार्य करें (जिस पर ध्यान नहीं देना चाहिए कि यह एक क्वेरी या एक सूची है।)
Comments
Post a Comment