[pyar] [django] Consulta en tabla grande con annotate y Sum

Pedro Jose Pezzarini jose2190 en gmail.com
Jue Dic 18 07:47:09 ART 2014


Por último, crea índices en campos claves del join, y en los que vas a
filtrar.

Yo tuve un problema similar y esta sección me ayudó mucho.
https://docs.djangoproject.com/en/1.6/topics/db/optimization/

El 18 de diciembre de 2014, 7:38, Ariel Rossanigo <arielrossanigo en gmail.com>
escribió:
>
>
>
> El 17 de diciembre de 2014, 2:42 p. m., Matias Varela<
> matu.varela en gmail.com> escribió:
> [...]
>
>> ¿Se puede generar un QuerySet manualmente? por lo que leí no. Porque
>> sería una solución.
>>
>>
> Una solución rápida y fea que se me ocurre es crear una vista en postgres
> y armar un modelo de esa vista.
>
> Por ejemplo:
> * Ejecutas esto en postgres
>
> CREATE VIEW vw_reporte As
> SELECT "pp_cliente"."id", "pp_cliente"."nombre", mov."monto" AS "saldo"
> FROM "pp_cliente"
> LEFT OUTER JOIN (
> select cliente_id, sum(monto) as monto
> from "pp_movimientocliente"
> group by cliente_id) mov ON ( "pp_cliente"."id" = mov."cliente_id" )
>
> * models.py
>
> class MiReporte(models.Model):
>     id = models.IntegerField(primary_key=True)
>     nombre = models.CharField()
>     saldo = models.FloatField()
>
>     class Meta:
>         managed = False
>         db_table = 'vw_reporte'
>
>
> Después haces la query directamente y obtenes un Queryset
>
> In [1]: from pp.models import MiReporte
>
> In [2]: q = MiReporte.objects.all()
>
> In [3]: print type(q), str(q.query)
> <class 'django.db.models.query.QuerySet'> SELECT "vw_reporte"."id",
> "vw_reporte"."nombre", "vw_reporte"."saldo" FROM "vw_reporte"
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> 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/20141218/6e885e49/attachment.html>


More information about the pyar mailing list