Hi Neto,
Ordering by expression (order_by(Lower('name')) is not supported yet but it's
tracked as a feature request[1].
If we manage to allow transforms in `order_by()`[2] in the future you should be
able to define a ['name__lower'] ordering in the future but until then you
have to use a combination of `annotate()` and `order_by()` on a custom manager:
class PersonManager(models.Manager):
def get_queryset(self, *args, **kwargs):
queryset = super(PersonManager, self).get_queryset(*args, **kwargs)
return queryset.annotate(
name_lower=Lower('name'),
).order_by('name_lower')
class Person(models.Model):
name = models.CharField(_('name'), max_length=100)