Insights

Agregacion en Django

1 min read.
CN Camilo Nova Camilo Nova

Camilo Nova

CEO
Subscribe to our newsletter

Trabajando con modelos en Django para aplicaciones web de alto perfil, como las desarrolladas por AxiaCore, nos encontrábamos frecuentemente con tener que hacer cálculos aritméticos básicos manualmente sobre un conjunto de datos en particular.

Por ejemplo si necesitábamos obtener el total de ventas de un mes determinado, se tenia que iterar cada elemento del conjunto de datos (QuerySet) e ir sumando en una variable cada valor obtenido, los que hemos trabajado con aplicaciones conectadas a una base de datos sabemos que existen funciones de SQL con SUM() que efectúan esa tarea mucho mas cómodamente.

Afortunadamente para la nueva versión de Django, próxima a salir, la v1.1 existe la posibilidad de utilizar 'Agregaciones' y 'Anotaciones' que permiten efectuar este tipo de cálculos de una manera mucho mas fácil y recargando la responsabilidad de los cálculos a la base de datos y no a la lógica de la aplicación.

Factura.objects.aggregate(
    Avg('precio'), Max('precio'), Min('precio'), Sum('precio')
)

Mas información en la documentación oficial del proyecto.

Enlace:

http://docs.djangoproject.com/en/dev/topics/db/aggregation/


Written by Camilo Nova

CN Camilo Nova Camilo Nova

Software Engineer, Investor, CEO, and father of two. Camilo writes on the intersection of technology, design, and business.

Subscribe to our newsletter (free, no ads) With Love 💌

Wait. There's more:

Incrementar Velocidad Firefox

Para incrementar la velocidad en Firefox y poder disfrutar de una plataforma de correo electronico para empresas y otras apli...

1 min read.

Indice de Conectividad Colombia

Recientemente se ha publicado un estudio [1] sobre la conectividad de varios países en el mundo, en la actualidad, la conecti...

1 min read.

Lecciones sobre emprendimiento

Porque crear una empresa?Es una pregunta que muchos responden rápidamente, por pasión, por dinero, por oportunidades, las res...

1 min read.

Build to
Inspire