我想使用Postgresql的"NULLS LAST"选项对模型进行排序.

我试过类似的方法

MyModel.objects.all().extra(order_by=('-price', 'NULLS LAST'))

但我明白

"无法将关键字'NULLS LAST'解析为字段"

推荐答案

from django.db.models import F  
MyModel.objects.all().order_by(F('price').desc(nulls_last=True))

此功能已添加到Django 1.11中.

https://docs.djangoproject.com/en/dev/releases/1.11/

将nulls_first和nulls_last参数添加到表达式中.asc()

Django 3.1参考:https://docs.djangoproject.com/en/3.1/ref/models/expressions/#using-f-to-sort-null-values

Sql相关问答推荐

如何在case语句中使用条件来计算成对变量

查询每周数据(周一至周日),避免年度日期重叠

为什么我的SQL标量函数有时会抛出";子查询返回多个值.这是不允许的.

在PostgreSQL中汇总连接表中的 case 值

按属性值 Select 数组元素Postgres Jsonb

每个学校 Select N个最新的行,但跳过同一学生的重复行

从给定数据中查找下一个工作日期

为什么SQL in中的空子查询有时被视为null

SQL JSON_QUERY 使用列中的值构造 json 路径并接收错误

当我返回 sql 列时,有没有办法只反转数字? ( hebrew )

函数调用作为插入值语句中的参数

如何将 CONCATENATED 值与临时表中的值匹配

当没有任何行存在时,将一个表中的行插入到另一个表中的更好方法

如果当前日期是一周中的某一天,则从另一天提取结果

如何列出 Oracle 数据库中的所有函数并按修改日期排序

对动态日期范围进行分组

压缩或合并具有空值的行而不使用分组依据

提取字符串中的最后一个数字

第一个非 Null 值(有序)聚合函数

为什么在将值插入表变量期间添加尾随空格?为什么仅对一行使用 TRIM() 函数会修剪所有行?