python - 使用带有 PostgreSQL 的模型方法的 Django 查询排序不区分大小写

标签 python django python-2.7 django-1.5 postgresql-9.3

我真的是 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/

相关文章:

Django::OperationalError at/admin/login/无法打开数据库文件

python - Django 操作的默认参数

python - 每次运行在变量之间交替

python - 安装 PyObjC osX 时出错

javascript - Flask - 让 JavaScript 和 Python 进行通信

python - Sklearn 预处理 - PolynomialFeatures - 如何保留输出数组/数据帧的列名/标题

Python 显示从 1 到 100 的所有质数

Python-将字典输出到外部文本文件时仅输出第一个键

django - Tastypie 清理输入吗?

python - 在 n 时间后,我将如何停止 while 循环?