Django 末尾具有最低值0的对象

Django 末尾具有最低值0的对象,django,django-queryset,Django,Django Queryset,我的查询集中的0表示“未知”值,但按顺序排列后,它们将启动列表,我希望它们位于末尾 table.objects.filter(object=pk).order_by('decimal_coln') 这就是我得到的 Object decimal_coln Object_kdlsdl 0 Object_nksljj 0 Object_njsdlk 0 Object_jdnskl 1 Object_ldskll 1 Object_nlsdkl 12 Object_sjslkl 15

我的查询集中的0表示“未知”值,但按顺序排列后,它们将启动列表,我希望它们位于末尾

table.objects.filter(object=pk).order_by('decimal_coln')
这就是我得到的

Object        decimal_coln
Object_kdlsdl 0
Object_nksljj 0
Object_njsdlk 0
Object_jdnskl 1
Object_ldskll 1
Object_nlsdkl 12
Object_sjslkl 15
这是我想要的顺序,但最后是零:

Object        decimal_coln
Object_jdnskl 1
Object_ldskll 1
Object_nlsdkl 12
Object_sjslkl 15
Object_kdlsdl 0
Object_nksljj 0
Object_njsdlk 0
使用

返回准备按升序排序的表达式

nulls_first和nulls_last定义空值的排序方式

您只需从django.db.models导入F并按列顺序使用:

from django.db.models import F
table.objects.filter(object=pk).order_by(F('decimal_coln').desc(nulls_last=True))

我知道这不是一个直接的答案,但是为什么不对未定义的值使用NULL呢?desc将按降序返回结果,15,12,1,1,…,0,0。OP希望在1,1,12,15,…,0,0,0中,这是按顺序排列的。
from django.db.models import F
table.objects.filter(object=pk).order_by(F('decimal_coln').desc(nulls_last=True))