Django 按日期排序,但末尾有 "None"?

标签 django django-models django-queryset

我有一个工单模型,其中有一个字段用于表示何时需要工单。要获得一份工作订单列表,其中包括那些需要尽早完成的订单,我这样做:

wo = Work_Order.objects.order_by('dateWORequired')

这很好用,但前提是该字段中确实有一个值。如果没有要求的日期,则值为 None。然后,工单列表的顶部是所有 None,然后是按正确顺序排列的其余工单。

我怎样才能得到底部的None

最佳答案

Django 1.11 将此添加为 native 功能。这有点令人费解。 It is documented .

仅按一个字段,升序排序:

wo = Work_Order.objects.order_by(F('dateWORequired').asc(nulls_last=True))

使用两个字段排序,均降序:

wo = Work_Order.objects.order_by(F('dateWORequired').desc(nulls_last=True), F('anotherfield').desc(nulls_last=True))

关于Django 按日期排序,但末尾有 "None"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749216/

相关文章:

django - 在 Django forms.ChoiceField 上设置选定值

django - 将来自不同应用程序/对象的模型分组到一个管理 block 中

python - 如何在 Django 模型中传递带有字符串的类名

python - Django 按顺序连接两个查询集

python - 带有 OuterRef 的简单子(monad)查询

python - 能够将字段保存到变量中并使用到 queryset.value() 中吗? Django

python - 如何在django中以最 "secure"的方式暴露用户密码?

python - 在 django 模板中处理 u'\x00'

django - 请求任何 url 时 Django 出错

python - 覆盖模型 save() 会导致 Django Admin 出错