【发布时间】:2012-04-07 17:00:02
【问题描述】:
如何按日期对 django 中的查询集进行降序排序?
Reserved.objects.all().filter(client=client_id).order_by('check_in')
我只是想过滤掉所有的 Reserved by check_in 日期。
【问题讨论】:
如何按日期对 django 中的查询集进行降序排序?
Reserved.objects.all().filter(client=client_id).order_by('check_in')
我只是想过滤掉所有的 Reserved by check_in 日期。
【问题讨论】:
67
Reserved.objects.filter(client=client_id).order_by('-check_in')
'-'表示降序,升序只给出类属性
【讨论】:
添加 - 将按降序排列。
您还可以通过向模型的元数据添加默认排序来设置它。这意味着当您进行查询时,您只需输入MyModel.objects.all(),它就会以正确的顺序出现。
class MyModel(models.Model):
check_in = models.DateField()
class Meta:
ordering = ('-check_in',)
【讨论】:
Reserved.objects.filter(client=client_id).earliest('check_in')
或者
Reserved.objects.filter(client=client_id).latest('-check_in')
这是earliest() 和latest() 的文档
【讨论】:
如果由于某种原因你有空值,你可以像这样使用 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
【讨论】:
您也可以使用以下指令:
Reserved.objects.filter(client=client_id).order_by('check_in').reverse()
【讨论】:
升序
Reserved.objects.all().filter(client=client_id).order_by('check_in')
降序
Reserved.objects.all().filter(client=client_id).order_by('-check_in')
-(连字符)在这里表示降序。
【讨论】:
这对我有用。
latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]
【讨论】:
Reserved.objects.filter(client=client_id).order_by('-check_in')
注意- 之前的check_in。
【讨论】:
- 在列名前表示降序,- 表示升序。
升序:
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]
【讨论】:
删除.all():
Reserved.objects.filter(client=client_id).order_by('-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
【讨论】: