from django.db.models import Q,F
aQ = (Q(net_number__icontains=''))
demo.objects.filter(aQ).order_by(F('test_time').asc(nulls_last=True))[start:end].values()
其中test_time即爲指定字段,asc爲正序 傳入參數nulls_last爲True,查詢結果即爲空值在後。
其效果等同於:select * from demo where net_number like '%%' order by test_time is NULL, test_time;
select * from demo where net_number like '%%' order by if(isnull(test_time), 1, 0), test_time;
其中isnull函數中
將null強制放在前面:if(isnull(test_time), 0, 1)
asc默認是空值在前的,在desc默認是空值在後得,
如有需求,可以使用 0,1 將其放在前面;1,0放在後面