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:
| Categorías:
querysets,
trucos
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 ...
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 ...
En ocasiones nos interesa trabajar con subdominios en nuestros proyectos Django. Para ello podemos utilizar un sencillo middleware para subdominios que podemos encontrar en ...
Muchas veces deseamos acceder a los settings de nuestro proyecto desde alguna de nuestras plantillas. Lo ideal es crear un context processor que nos ...
No hay ningún comentario todavía.
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas