[pyar] [Django] Optimizacion de queries y configuración de Apache

Fabian Ezequiel Gallina galli.87 en gmail.com
Mie Nov 16 21:50:01 ART 2011


El 16 de noviembre de 2011 16:13, Tordek <kedrot en gmail.com> escribió:

> Hasta ahora la mejor solución que se me ocurrió es buscar los IDs
> llamando directamente a la DB, y después hacer
>
> novedades = Articulos.objetos.select_related().filter(pk__in=ids)
>
> que al menos es 2 queries en vez de 9.
>
>
Otra es agregar un models.ForeignKey a Articulo en Colección que apunte al
último artículo agregado (le voy a poner ultimo_articulo), overridear el
save the Artículo para que cuando se crea una instancia se guarde como
ultimo_articulo en Colección:

class Articulo(models.Model):
    ...

    def save(self, *args, **kwargs):
        created = self.pk is None
        super(Articulo, self).save(*args, **kwargs)
        if created:
            self.coleccion.ultimo_articulo = self
            self.coleccion.save()

Después podrías tener algo así[0]:
Articulo.objects.select_related().filter(pk=F('coleccion__ultimo_articulo__pk'))


Si tu drama es la velocidad y cantidad de queries a esto le pongo unos
porotos.

[0]
https://docs.djangoproject.com/en/dev/topics/db/queries/#filters-can-reference-fields-on-the-model


Saludos,
Fabián E. Gallina
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111116/a0d8f002/attachment.html>


More information about the pyar mailing list