我有一個django queryset排序問題。Django:按位置排序忽略NULL
我的模型包含一個名爲position
(a PositiveSmallIntegerField)的字段,我想用它來對查詢結果進行排序。
我用order_by('position')
,效果很好。
問題:我position
場可爲空(null=True, blank=True
),因爲我不wan't指定我的模型:(
每50000個實例的位置在某些情況下,有一個NULL「位置」 order_by
返回它們在列表的頂端:我想他們是在最後...
在RAW SQL,我以前寫的東西,如‘IF(position IS NULL or position='', 1, 0)
’(見http://www.shawnolson.net/a/730/mysql-sort-order-with-null.html):這可能使用Django獲得相同的結果,而不用編寫原始SQL?
非常感謝!
是啊!它很好,非常感謝你mnik700! – user650108 2011-03-08 20:40:07
這是一個非常整潔的伎倆,謝謝。 – 2012-07-11 15:21:35
不知何故,這對我不起作用,也許是因爲我有一個訂單字段:position__name(這是position.name)。太糟糕了。 啊,等一下!我將null_position重命名爲null,看起來django不喜歡這樣!現在工作,謝謝! :) – gabn88 2015-09-14 17:27:16