[pyar] Consulta Django
Daniel Moisset
dmoisset en machinalis.com
Jue Jul 27 11:16:39 ART 2017
values() toma expresiones, no lookups. Las expresiones pueden ser un nombre
de campo, pero deberías poder armar la expresion. Probablemente te quede
algo dependiente del motor de base de datos.
No lo estoy probando, pero creo que debería ser algo como (en postres donde
el SQL de abajo es 'DATE_TRUNC('week', date)':
.values(semana=Func('week', F('date'), function='DATE_TRUNC'))...
fijate lo que dice de expresiones en la documentacion de values
https://docs.djangoproject.com/en/1.11/ref/models/querysets/#values, y la
documentación de expresiones en
https://docs.djangoproject.com/en/1.11/ref/models/expressions/#func-expressions
Slds,
D.
2017-07-27 15:05 GMT+01:00 Sofi Denner <sofi.denner en gmail.com>:
> Hola Matias!
> Si, el .filter(date__week=x) me funciona bien.
> El problema lo tengo con .value('date__week')
> Y por ejemplo, tampoco funciona .value('date__year') ni ninguno de los
> lookups :(
>
>
>
> El jue., 27 de jul. de 2017 a la(s) 10:06, Varela Matias <
> matu.varela en gmail.com> escribió:
>
>> Hola Sofia, qué versión de django estás usando?
>>
>> En la 1.11 agregaron el lookup week --> https://docs.djangoproject.
>> com/en/1.11/ref/models/querysets/#week
>>
>>
>> El jue., 27 jul. 2017 a las 9:50, Sofi Denner (<sofi.denner en gmail.com>)
>> escribió:
>>
>>> 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?
>>>
>>> Gracias!!
>>>
>>> _______________________________________________
>>> 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
>>
>> --
>> Matías Varela
>> (260) 4290769 <(260)%20429-0769>
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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
>
--
Daniel F. Moisset - UK Country Manager - Machinalis Limited
www.machinalis.co.uk <http://www.machinalis.com>
Skype: @dmoisset T: + 44 7398 827139
1 Fore St, London, EC2Y 9DT
Machinalis Limited is a company registered in England and Wales. Registered
number: 10574987.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170727/70ef18cb/attachment-0001.html>
Más información sobre la lista de distribución pyar