tutorial queryset para jsonfield cual create django postgresql orm

queryset - orm para django



Cómo cambiar el comportamiento predeterminado de ordenamiento nulo de PostgreSQL en el Django ORM (1)

PostgreSQL considera por defecto los valores NULL como los más altos, y por lo tanto los ordena primero para las consultas descendentes y los últimos para los ascendentes.

Puede modificar este comportamiento por consulta o creación de índice especificando ''NULLS LAST'' o ''NULLS FIRST''.

¿Cómo puedo usar esto junto con el ORM de Django, sin la necesidad de utilizar consultas sin formato? Es decir, cuando agrego a mi query_set algo como qs.order_by("-publish_start") , ¿cómo puedo especificar la ordenación de nulos? O, como alternativa, en declaración de campo / índice.


Descubrí una manera que acomoda los motores de DB que funcionan de cualquier manera (nulo como el valor más alto o más bajo) usando extra , haciendo que la verificación nula sea booleana, y cuando se ordenan los booleanos false < true parece ser universal:

qs = qs.extra(select={''null_start'': "publish_start is null"}, order_by=[''null_start'', ''-publish_start''])