Измислих начин, който приспособява DB двигатели, които работят по един или друг начин (нулево като най-висока или най-ниска стойност), като използвам extra
, правейки нулевата проверка булево, а при сортиране булеви стойности false < true
изглежда универсален:
qs = qs.extra(select={'null_start': "publish_start is null"},
order_by=['null_start', '-publish_start'])