我真的是 django、python 和 postgres 的新手...我似乎无法找到关于如何在使用模型作为查询方法时不区分大小写的 order_by 的答案,只有当您使用直接 SQL 查询时。
Model
@classmethod
def get_channel_list(cls, account):
return cls.objects.filter(accountid=account).order_by('-name').values_list('name', 'channelid')
数据集及其当前排序的顺序
test
b test
a test channel
a test channel
a test 2
a b test
Test Channel
Test 3
Test 3
Test 2 Channel
如有任何帮助,我们将不胜感激。
最佳答案
对于 django 1.8,有一个内置的解决方案:
from django.db.models.functions import Lower
...
ret = ret.order_by(Lower('name_lower'))
ret = ret.order_by(Lower('name_lower').asc())
ret = ret.order_by(Lower('name_lower').desc())
关于python - 使用带有 PostgreSQL 的模型方法的 Django 查询排序不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20768955/