I\'m really new to django, python and postgres... I can\'t seem to find the answer on how to order_by being case insensitive while using Model as the query method, only if y
Using 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
With django 1.8, there is a built-in solution:
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())