Django Query sort нечувствителен к регистру с использованием метода модели с PostgreSQL

Я действительно новичок в django, python и postgres … Кажется, я не могу найти ответ о том, как order_ быть нечувствительным к регистру при использовании Model в качестве метода запроса, только если вы используете прямые 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 ab test Test Channel Test 3 Test 3 Test 2 Channel 

Любая помощь приветствуется.

Использование QuerySet.extra(select=...) :

 @classmethod def get_channel_list(cls, account): ret = cls.objects.extra(select={'name_lower': 'lower(name)'}) ret = ret.order_by('-name_lower') ret = ret.filter(accountid=account).values_list('name', 'channelid') return channels 

С 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())