Ich habe einen Weg gefunden, der DB-Engines berücksichtigt, die in beide Richtungen funktionieren (Null als höchster oder niedrigster Wert), indem ich extra
verwende , wodurch die Nullprüfung zu einem booleschen Wert wird, und beim Sortieren von booleschen Werten false < true
scheint universell zu sein:
qs = qs.extra(select={'null_start': "publish_start is null"},
order_by=['null_start', '-publish_start'])