[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