django order_by查询集,升序和降序
如何通过按日期降序在django中设置我的查询集?django order_by查询集,升序和降序
Reserved.objects.all().filter(client=client_id).order_by('check_in')
我只是想过滤从check_in日期的所有保留。
Reserved.objects.filter(client=client_id).order_by('-check_in')
注意check_in
之前的-
。
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
比接受的答案更清洁,没有理由拥有.all()。filter(xxx)。 – 2016-03-06 07:26:14
它的工作原理去除.all()
:
Reserved.objects.filter(client=client_id).order_by('-check_in')
这与@ leonardo-z的答案基本相同,不是吗? – 2016-09-26 16:49:52
而不是重新发布相同的答案,它投票。 – AKSiddique 2017-07-05 07:37:42
您还可以使用下面的指令:
Reserved.objects.all().filter(client=client_id).order_by('check_in').reverse()
你可以,但我强烈怀疑让SQL服务器处理命令更有效率,至少在理论上是这样。不过,这很好,很清楚。 – 2016-09-26 16:51:11
按升序排列:
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]
这是为我工作。
latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]
添加 - 将按降序排列。 您也可以通过为模型的元素添加默认排序来设置此项。这意味着当你做一个查询时,你只需要做MyModel.objects.all(),它会以正确的顺序出来。
class MyModel(models.Model):
check_in = models.DateField()
class Meta:
ordering = ('-check_in',)
这就是它的可爱。谢谢。 – Ayush 2017-10-26 04:57:52