[pyar] Consulta Django
Facundo Batista
facundobatista en gmail.com
Jue Jul 27 12:29:44 ART 2017
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
Más información sobre la lista de distribución pyar