當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。