संक्षिप्त प्रश्न
PostgreSQL डेटाबेस से कनेक्ट होने पर Django फ़िल्टर कॉल से लौटाई गई सूची का डिफ़ॉल्ट क्रम क्या है?Django फ़िल्टर कॉल से लौटाई गई सूची का डिफ़ॉल्ट क्रम क्या है?
पृष्ठभूमि
अपने ही प्रवेश करके, मैं आवेदन पर एक गरीब धारणा में परत कि जिस क्रम में एक सूची लौटा दिया जाता है लगातार हो जाएगा कर दिया था, कि 'order_by' का उपयोग कर के बिना है। जिन वस्तुओं की मैं पूछताछ कर रहा था उनकी सूची वर्णमाला क्रम में या किसी अन्य जानबूझकर क्रम में नहीं है। यह उसी क्रम में बने रहने के लिए सोचा गया था, जहां उन्हें डेटाबेस में जोड़ा गया था।
यह धारणा सैकड़ों प्रश्नों के लिए सच रही, लेकिन मेरे आवेदन द्वारा विफलता की सूचना दी गई जब आदेश अनजाने में बदल गया। मेरे ज्ञान के लिए, इस समय के दौरान इनमें से कोई भी रिकॉर्ड छुआ नहीं था क्योंकि मैं अकेला व्यक्ति हूं जो डीबी को बनाए रखता है। भ्रम में जोड़ने के लिए, मैक ओएस एक्स पर Django ऐप चलाने पर, यह अभी भी अपेक्षित के रूप में काम करता है, लेकिन विन XP पर, यह ऑर्डर बदल गया। (ध्यान दें कि सैकड़ों प्रश्न Win XP पर थे)।
इससे कोई अंतर्दृष्टि उपयोगी होगी क्योंकि मुझे Django या PostgreSQL दस्तावेज़ में कुछ भी नहीं मिला जो ऑपरेटिंग सिस्टम में अंतर को समझाता है।
उदाहरण कॉल
required_tests = Card_Test.objects.using(get_database()).filter(name__icontains=key)
संपादित
के साथ कुछ सहकर्मी के मेरा आज बोलने के बाद, मैं ब्योर्न Lindqvist रूप में एक ही जवाब के साथ आया था।
वापस देखकर, मुझे निश्चित रूप से समझ में आता है कि यह अक्सर गलत क्यों किया जाता है। एक ओआरएम Django, sqlalchemy, या जो भी हो, का उपयोग करने के लाभों में से एक यह है कि आप बिना किसी डेटाबेस को जानने या समझने (विवरण में) के बिना आदेश लिख सकते हैं। माना जाता है कि मैं इन उपयोगकर्ताओं में से एक रहा हूं। हालांकि इसका फ्लिप-साइड यह है कि डेटाबेस को विस्तार से डिबगिंग त्रुटियों के बिना इस तरह की समस्याएं काफी परेशानी और संभावित आपदाजनक हैं।
अच्छा फर्म वितरण :) – kronosapiens