簡體   English   中英

Django order_by 兩個字段,最后一個字段為空

[英]Django order_by two fields, with first field nulls last

我想按兩個字段對查詢集進行排序,比如說時間戳和名稱。 我將有許多時間戳為空的記錄,但所有記錄都有一個名稱。 我希望所有具有時間戳的記錄排在第一位,按時間戳排序,然后是所有時間戳為空的記錄,但按名稱進行輔助排序。

示例排序結果:

Timestamp   Name
---------   ----------
10:00       John
10:00       Kevin
10:00       Xavier
11:00       Arnold
12:00       Steve
(null)      Abe
(null)      Ben
(null)      Catherine
(null)      Zeke

我知道在按單個字段排序時可以將空值放在最后,如下所示:

Person.objects.order_by(F('timestamp').asc(nulls_last=True))

我只是不確定如何在那里獲取輔助排序字段(名稱)。

我想我找到了解決方案:

Person.objects.order_by(F('timestamp').asc(nulls_last=True), 'name')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM