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 

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

2 Solutions collect form web for “Django Query sort нечувствителен к регистру с использованием метода модели с PostgreSQL”

Использование 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()) 
  • Python Pandas: отрицательные значения фильтра DataFrame
  • Изменить формат текста координаты в строке состояния
  • Заполните и отправьте форму html
  • Почему pip, внутри virtualenv, пишет в / usr / lib?
  • Как сделать запрос POST в robobrowser-python
  • Пустой список равен None или нет?
  • Импорт модуля запросов в python не работает в OS X
  • Разработка API Python для существующего Java API
  • Python - лучший язык программирования в мире.