django order_by查询集,升序和降序

时间:2012-03-23 04:05:29

标签: python django sorting

如何通过按日期降低django中的查询集来订购?

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

我只想过滤掉所有保留的check_in日期。

11 个答案:

答案 0 :(得分:437)

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

请注意-之前的check_in

Django Documentation

答案 1 :(得分:58)

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

“check_in”前面的连字符“ - ”表示降序。升序是隐含的。

我们不必在filter()之前添加all()。这仍然有效,但是当您需要来自根QuerySet的所有对象时,您只需要添加all()。

更多相关信息: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters

答案 2 :(得分:13)

您还可以使用以下说明:

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

答案 3 :(得分:12)

升序:

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]

答案 4 :(得分:11)

它有效删除.all()

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

答案 5 :(得分:3)

如果由于某种原因您具有空值,则可以使用F函数,如下所示:

from django.db.models import F

Reserved.objects.all().filter(client=client_id).order_by(F('check_in').desc(nulls_last=True))

因此它将最后放置空值。 Django提供的文档:https://docs.djangoproject.com/en/stable/ref/models/expressions/#using-f-to-sort-null-values

答案 6 :(得分:2)

添加 - 将按降序排序。 您还可以通过向模型的元添加默认排序来设置此项。这意味着当您执行查询时,您只需执行MyModel.objects.all(),它将以正确的顺序出现。

class MyModel(models.Model):

    check_in = models.DateField()

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

答案 7 :(得分:2)

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

或者

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

以下是earliest()latest()的文档

答案 8 :(得分:0)

这对我有用。

latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]

答案 9 :(得分:0)

  1. 升序

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

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

-(连字符)用于在此处指示降序。

答案 10 :(得分:-1)

67

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

'-'表示降序,对于升序,只需提供类属性