如何将“NULLS LAST”添加到 Django 查询
在 PostgreSQL 中对数据进行排序时,通常的做法是使用“NULLS LAST”选项可确保空值在结果末尾排序。 Django 的查询 API 不直接支持此选项。
解决方案
nulls_last=True 参数可以与 Expression.desc() 一起使用来控制 null 的排序价值观。这是一个示例:
from django.db.models import F MyModel.objects.all().order_by(F('price').desc(nulls_last=True))
此语法自 Django 1.11 起可用。
其他信息
文档建议使用 Expression.asc( ) 或带有适当 nulls_last 参数的 Expression.desc() ,而不是带有传统 order_by 的 extra()
对于 Django 3.1 及以上版本,请参考官方文档了解更多信息:
https://docs.djangoproject.com/en/3.1/ref/models/expressions/#使用-f-对空值进行排序
以上是如何使用 PostgreSQL 对 Django 查询中的 NULL 值进行最后排序?的详细内容。更多信息请关注PHP中文网其他相关文章!