Django order_by 两个字段,第一个字段最后为空

Joe*_*jr2 2 python sorting django django-models

我想按两个字段对查询集进行排序,比如说时间戳和名称。我将有许多时间戳为空的记录,但所有记录都有一个名称。我希望所有具有时间戳的记录首先出现,按时间戳排序,然后是所有具有空时间戳的记录,但按名称进行辅助排序。

排序结果示例:

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
Run Code Online (Sandbox Code Playgroud)

我知道按单个字段排序时可以将空值放在最后,如下所示:

Person.objects.order_by(F('时间戳').asc(nulls_last=True))

我只是不确定如何在那里获取辅助排序字段(名称)。

Joe*_*jr2 7

我想我找到了解决方案:

Person.objects.order_by(F('时间戳').asc(nulls_last=True), '名称')