Realmente soy nuevo en django, python y postgres … Parece que no puedo encontrar la respuesta sobre cómo ordenar_por mayúsculas y minúsculas al usar Model como método de consulta, solo si usa consultas SQL directas.
Model @classmethod def get_channel_list(cls, account): return cls.objects.filter(accountid=account).order_by('-name').values_list('name', 'channelid')
El conjunto de datos y el orden se están ordenando actualmente en
test b test a test channel a test channel a test 2 ab test Test Channel Test 3 Test 3 Test 2 Channel
Cualquier ayuda sería muy apreciada.
Usando 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
Con django 1.8, hay una solución integrada:
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())