query - django-orm mayúsculas y minúsculas orden por
gte django (3)
Desde Django 1.8 es posible con:
from django.db.models.functions import Lower
MyModel.objects.order_by(Lower(''myfield''))
Lo sé, puedo realizar una búsqueda sin distinción de mayúsculas y minúsculas de DJango ORM. Me gusta,
User.objects.filter(first_name__contains="jake")
User.objects.filter(first_name__contains="sulley")
User.objects.filter(first_name__icontains="Jake")
User.objects.filter(first_name__icontains="Sulley")
Y también, puedo traerlos como
user_list = User.objects.all().order_by("first_name")
# sequence: (Jake, Sulley, jake, sulley)
user_list = User.objects.all().order_by("-first_name") # for reverse
# sequence: (sulley, jake, Sulley, Jake)
¿Hay una manera directa para una búsqueda sin distinción entre mayúsculas y minúsculas? Como en Quiero una secuencia como
# desired sequence: jake, Jake, sulley, Sulley
Si no, sugiera una mejor manera de hacerlo. Gracias por adelantado.
Esto es para postgresql, pero quizás también sea útil para otras bases de datos:
http://scottbarnham.com/blog/2007/11/20/case-insensitive-ordering-with-django-and-postgresql/
Esta respuesta no está actualizada, verifique la solución a continuación con django 1.8 ->
Encontré solución usando .extra
class MyModelName(models.Model):
is_mine = models.BooleanField(default=False)
name = models.CharField(max_length=100)
MyModelName.objects.filter( is_mine=1 ).extra(/
select={''lower_name'':''lower(name)''}).order_by(''lower_name'')
enlace original:
http://naorrosenberg.blogspot.fi/2011/04/django-models-orderby-charfield-case.html