Django admin:按可为空的日期排序,末尾为空值

Mot*_*sim 5 django

我有一个带有 DateTimeField 的模型,我想用它来对管理中的表进行排序。ordering = ('-completed',)在工作中使用admin.py,但那些有null值的在排序中排在第一位。有没有办法让它们出现在最后?

所以现在我有这样的事情:

Column A     Completed       Column C
x            -               y
x            -               y
x            Today's date    y
x            Yesterday's     y
Run Code Online (Sandbox Code Playgroud)

有没有办法让它像这样?

Column A     Completed       Column C
x            Today's date    y
x            Yesterday's.    y
x            -               y
x            -               y
Run Code Online (Sandbox Code Playgroud)

小智 7

您可以使用查询表达式。要按完整升序排序并使空值排在最后,请使用以下命令:

from django.db.models import F

ordering = [F('completed').desc(nulls_last=True)]
Run Code Online (Sandbox Code Playgroud)

来源: https: //docs.djangoproject.com/en/dev/ref/models/options