Django中不区分大小写的查询集排序

nie*_*kas 2 python sqlite django django-queryset

是否有可能对Django queryset case不敏感地排序?这个查询:

MyModel.objects.order_by('title')
Run Code Online (Sandbox Code Playgroud)

使用区分大小写排序.结果如下排序:

X..
a..
b..
Run Code Online (Sandbox Code Playgroud)

但我想对这样的标题进行排序:

a..
b..
X..
Run Code Online (Sandbox Code Playgroud)

kar*_*ikr 7

不确定是否可以直接使用ORM.但是使用该extra()子句,您可以尝试这样做:

MyModel.objects.extra(select={'case_insensitive_title': 'lower(title)'}).order_by('case_insensitive_title')
Run Code Online (Sandbox Code Playgroud)