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