如何通过按日期降低django中的查询集来订购?
Reserved.objects.all().filter(client=client_id).order_by('check_in')
我只想过滤掉所有保留的check_in日期。
答案 0 :(得分:437)
Reserved.objects.filter(client=client_id).order_by('-check_in')
请注意-
之前的check_in
。
答案 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)
升序
Reserved.objects.all().filter(client=client_id).order_by('check_in')
降序
Reserved.objects.all().filter(client=client_id).order_by('-check_in')
-
(连字符)用于在此处指示降序。
答案 10 :(得分:-1)
67
Reserved.objects.filter(client = client_id).order_by('-check_in')
'-'表示降序,对于升序,只需提供类属性