набор запросов django order_by, по возрастанию и по убыванию - PullRequest
221 голосов
/ 23 марта 2012

Как я могу оформить заказ по убыванию набора запросов в django по дате?

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

Я просто хочу отфильтровать по убыванию все Зарезервированные по дате check_in.

Ответы [ 8 ]

450 голосов
/ 23 марта 2012
Reserved.objects.filter(client=client_id).order_by('-check_in')

Обратите внимание на - перед check_in.

Документация Django

58 голосов
/ 23 марта 2012
Reserved.objects.filter(client=client_id).order_by('-check_in')

Дефис "-" перед "check_in" обозначает нисходящий порядок.Подразумевается возрастающий порядок.

Нам не нужно добавлять all () перед filter ().Это все равно будет работать, но вам нужно добавить all () только тогда, когда вы хотите, чтобы все объекты из корневого QuerySet.

Подробнее об этом здесь: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters

13 голосов
/ 04 февраля 2015

Вы также можете использовать следующую инструкцию:

Reserved.objects.filter(client=client_id).order_by('check_in').reverse()
12 голосов
/ 25 февраля 2016

по возрастанию:

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]
11 голосов
/ 21 января 2014

Работает удаление .all():

Reserved.objects.filter(client=client_id).order_by('-check_in')
2 голосов
/ 26 февраля 2018

Добавление - упорядочит его в порядке убывания. Вы также можете установить это, добавив порядок по умолчанию к мета вашей модели. Это будет означать, что когда вы делаете запрос, вы просто делаете MyModel.objects.all (), и он будет отображаться в правильном порядке.

class MyModel(models.Model):

    check_in = models.DateField()

    class Meta:
        ordering = ('-check_in',)
0 голосов
/ 21 мая 2019
  1. По возрастанию

    Reserved.objects.all().filter(client=client_id).order_by('check_in')
    
  2. По убыванию

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

- (дефис) используется для указания здесь в порядке убывания.

0 голосов
/ 26 октября 2017

Это работает для меня.

latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...