django order_by क्वेरी सेट, आरोही और अवरोही


287

मैं आज तक django में सेट की गई अपनी क्वेरी को कैसे हटा सकता हूं?

Reserved.objects.all().filter(client=client_id).order_by('check_in')

मैं सिर्फ check_in तिथि द्वारा सभी आरक्षित को नीचे उतरने से फ़िल्टर करना चाहता हूं।

जवाबों:


550
Reserved.objects.filter(client=client_id).order_by('-check_in')

सूचना -से पहले check_in

Django प्रलेखन


models.somModalName.all () order_b ( '- दिनांक / समय')।
Shedrack

1
-स्तंभ नाम से पहले, -आरोही क्रम के बिना अवरोही क्रम का मतलब है।
CallMarl

69
Reserved.objects.filter(client=client_id).order_by('-check_in')

"चेक_इन" के सामने एक हाइफ़न "-" अवरोही क्रम को दर्शाता है। आरोही क्रम निहित है।

हमें फ़िल्टर से पहले एक () जोड़ने की आवश्यकता नहीं है। यह अभी भी काम करेगा, लेकिन आपको केवल सभी चीजों को जोड़ने की जरूरत है (जब आप रूट क्वेरी से सभी ऑब्जेक्ट चाहते हैं।

इस पर अधिक यहाँ: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters


3
स्वीकृत उत्तर की तुलना में क्लीनर, कोई कारण नहीं है .all ()। Filter (xxx)।
ल्यूक डुपिन

19

आप निम्न निर्देश का भी उपयोग कर सकते हैं:

Reserved.objects.filter(client=client_id).order_by('check_in').reverse()

4
आप कर सकते हैं, लेकिन मुझे दृढ़ता से संदेह है कि SQL सर्वर को आदेश को संभालने के लिए अधिक कुशल होना चाहिए, कम से कम सिद्धांत में। हालांकि यह अच्छा और स्पष्ट है।
माइकल शेपर

1
@MichaelScheper हाँ, यह सुनिश्चित करने के लिए है। इसके अलावा, .all().filter()आवश्यक नहीं है। .filter()अकेला ही ठीक है।
सैम क्रीमर

14

आरोही क्रम के लिए:

Reserved.objects.filter(client=client_id).order_by('check_in')

अवरोही क्रम के लिए:

1.  Reserved.objects.filter(client=client_id).order_by('-check_in')

या

2.  Reserved.objects.filter(client=client_id).order_by('check_in')[::-1]

1
कोई भी कभी भी 2 विधि का उपयोग क्यों करना चाहेगा?
माइकलआर

यह उपलब्ध विकल्पों में से एक है। लेकिन, बेहतर तरीका 1 विधि का उपयोग करना है।
अंजनीयुलबत्ता ५०५


7

- जोड़ने से इसे अवरोही क्रम में आर्डर किया जाएगा। आप इसे अपने मॉडल के मेटा में डिफ़ॉल्ट ऑर्डर जोड़कर भी सेट कर सकते हैं। इसका मतलब यह होगा कि जब आप एक क्वेरी करते हैं तो आप सिर्फ MyModel.objects.all () करते हैं और यह सही क्रम में सामने आएगा।

class MyModel(models.Model):

    check_in = models.DateField()

    class Meta:
        ordering = ('-check_in',)

3
  1. आरोही क्रम

    Reserved.objects.all().filter(client=client_id).order_by('check_in')
  2. घटते क्रम में

    Reserved.objects.all().filter(client=client_id).order_by('-check_in')

- (हाइफ़न) का उपयोग यहाँ अवरोही क्रम को दर्शाने के लिए किया जाता है।



-1

67

Reserved.objects.filter (ग्राहक = client_id) .order_by ( '- check_in')

'-' अवरोही क्रम को इंगित करता है और आरोही क्रम के लिए बस श्रेणी गुण देता है


1
कृपया अपने प्रश्नों के लिए अधिक संदर्भ दें
iman

नमस्ते, StackOverflow पर आपका स्वागत है, कृपया अपने उत्तर की समीक्षा करें, इसे सही ढंग से प्रारूपित करें, इसे स्पष्ट करें (शीर्ष पर यह "67" क्या है); आप "अच्छा" उत्तर लिखने का तरीका जानने के लिए stackoverflow.com/help/how-to-answer का संदर्भ ले सकते हैं
पियरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.