Jag kom på ett sätt som passar DB-motorer som fungerar åt båda hållen (null som högsta eller lägsta värde) genom att använda extra
, vilket gör noll-kontrollen till en boolean, och vid sortering av booleaner false < true
verkar vara universell:
qs = qs.extra(select={'null_start': "publish_start is null"},
order_by=['null_start', '-publish_start'])