Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Ordenar una query por la longitud de un campo

A veces tenemos que hacer queries un poco especiales y necesitamos ayuda de SQL cuando el ORM de Django se nos queda pequeño. Aquí tenemos un ejemplo de cómo ordenar una query a la base de datos por la longitud de un campo:

Modelo.objects.all().extra(select={'length':'Length(campo)'}).order_by('length')

Aprovechando la función extra del ORM de Django que nos permite añadir SQL a nuestras queries podemos calcular la longitud del campo con la función Length() de SQL y guardarla en un argumento length que luego utilizamos en el order_by.

Publicado por Antonio Melé el Jueves 13 de Octubre de 2011 Compártelo: Facebook: Twitter: | Categorías: querysets, trucos

Entradas similares

Aplicar filtros a annotate() al usar Count()

A veces queremos utilizar la función de aggregación annotate() y aplicar filtros al modelo que se encuentra dentro de la misma, pero no es ...


Métodos para crear perfiles de usuario

En múltiples ocasiones nos gustaría extender el modelo User para que incluyera otros campos y funciones. La manera "oficial" de hacer esto (la mostrada ...


 
Subdominios con Django

En ocasiones nos interesa trabajar con subdominios en nuestros proyectos Django. Para ello podemos utilizar un sencillo middleware para subdominios que podemos encontrar en ...


Settings accesibles desde las plantillas

Muchas veces deseamos acceder a los settings de nuestro proyecto desde alguna de nuestras plantillas. Lo ideal es crear un context processor que nos ...


 
 

0 comentarios:

No hay ningún comentario todavía.

Escribe un comentario: