[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