本文介紹 django.db.models.query.QuerySet.latest
的用法。
聲明
latest(*fields)
根據給定字段返回表中的最新對象。
此示例根據pub_date
字段返回表中最新的Entry
:
Entry.objects.latest('pub_date')
您還可以根據多個字段選擇最新的。例如,當兩個條目具有相同的 pub_date
時,選擇具有最早 expire_date
的 Entry
:
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')
相關用法
- Python Django QuerySet.select_related用法及代碼示例
- Python Django QuerySet.union用法及代碼示例
- Python Django QuerySet.values用法及代碼示例
- Python Django QuerySet.intersection用法及代碼示例
- Python Django QuerySet.get用法及代碼示例
- Python Django QuerySet.none用法及代碼示例
- Python Django QuerySet.exclude用法及代碼示例
- Python Django QuerySet.get_or_create用法及代碼示例
- Python Django QuerySet.update_or_create用法及代碼示例
- Python Django QuerySet.prefetch_related用法及代碼示例
- Python Django QuerySet.first用法及代碼示例
- Python Django QuerySet.annotate用法及代碼示例
- Python Django QuerySet.dates用法及代碼示例
- Python Django QuerySet.values_list用法及代碼示例
- Python Django QuerySet.select_for_update用法及代碼示例
- Python Django QuerySet.order_by用法及代碼示例
- Python Django QuerySet.bulk_update用法及代碼示例
- Python Django QuerySet.in_bulk用法及代碼示例
- Python Django QuerySet.defer用法及代碼示例
- Python Django QuerySet.aggregate用法及代碼示例
- Python Django QuerySet.reverse用法及代碼示例
- Python Django QuerySet.count用法及代碼示例
- Python Django QuerySet.exists用法及代碼示例
- Python Django QuerySet.explain用法及代碼示例
- Python Django QuerySet.create用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.db.models.query.QuerySet.latest。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。