[pyar] Consulta Django

nestor godoy licomgodoy en gmail.com
Jue Jul 27 15:22:08 ART 2017


Hola Sofi Denner por lo que pude ver debes leer sobre

https://docs.djangoproject.com/en/1.11/ref/models/
database-functions/#extract

luego hacer algo asi :

sales_queryset = sales_queryset.annotate(dateweek=Extract('date', 'week'))

te dara tipo :

“dateweek”: 1
“dateweek”: 1
“dateweek”: 2
“dateweek”: 25

como se repiten debe agrupar y sumar

sales_queryset.values('dateweek').annotate(sum_week=Sum('kg'))



El 27 de julio de 2017, 12:29, Facundo Batista <facundobatista en gmail.com>
escribió:

> 2017-07-27 9:49 GMT-03:00 Sofi Denner <sofi.denner en gmail.com>:
> > Buen día lista! Les hago una pregunta de Django, que no estoy pudiendo
> > resolver:
> > Existe alguna forma de hacer algo parecido a esto?:
> >
> > sales_queryset.values('date__week').annotate(sum_week=Sum('kg'))
> >
> > La idea es agrupar la suma de todos los kg vendidos por semana. La parte
> que
> > falla es la de ".values('date__week')". Colocando ".values('date')"
> > funciona, pero por supuesto, agrupa las ventas por día y no por semana.
> >
> > Hasta ahora la forma de "solucionarlo" que se me ocurrió es haciendo:
> >
> > [sales_queryset.filter(date__week=k).aggregate(sum=Sum('kg'))['sum']
> for k
> > in weeks_list]
> >
> > Pero esta forma es suuuuper ineficiente.
> >
> > Alguien me tira alguna idea de cómo resolverlo?
>
> ¿Por qué es super ineficiente? ¿Porque al iterar estás yendo mucho a la DB?
>
> Y si prefetcheas los atributos relacionados? de esta manera traería
> todo de un golpe, y ya
>
>   https://docs.djangoproject.com/en/1.11/ref/models/
> querysets/#prefetch-related
>
> Saludos!
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170727/f2804eb9/attachment.html>


Más información sobre la lista de distribución pyar