当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django QuerySet.latest用法及代码示例


本文介绍 django.db.models.query.QuerySet.latest 的用法。

声明

latest(*fields)

根据给定字段返回表中的最新对象。

此示例根据pub_date 字段返回表中最新的Entry

Entry.objects.latest('pub_date')

您还可以根据多个字段选择最新的。例如,当两个条目具有相同的 pub_date 时,选择具有最早 expire_dateEntry

Entry.objects.latest('pub_date', '-expire_date')

'-expire_date' 中的负号表示按照descending 的顺序对expire_date 进行排序。由于latest()得到最后一个结果,所以选择expire_date最早的Entry

如果您的模型的 Meta 指定 get_latest_by ,您可以省略 earliest()latest() 的任何参数。 get_latest_by 中指定的字段将默认使用。

get() earliest()latest() 类似,如果没有具有给定参数的对象,则会引发 DoesNotExist

请注意,earliest()latest() 的存在纯粹是为了方便和可读性。

earliest()latest() 可能会返回具有空日期的实例。

由于排序已委托给数据库,因此如果您使用不同的数据库,则允许空值的字段上的结果可能会以不同的方式排序。例如,PostgreSQL 和MySQL 对空值进行排序,就好像它们高于非空值一样,而 SQLite 则相反。

您可能想要过滤掉空值:

Entry.objects.filter(pub_date__isnull=False).latest('pub_date')

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.latest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。