[pyar] [django] como achicar los queries?

SAn gringotumadre en gmail.com
Jue Sep 16 21:59:30 ART 2010


2010/9/16 xavier lesa <xavierlesa en gmail.com>:
> Hola gente, estoy teniendo un problemita cuando accedo al "perfil" de un
> usuario, haciendo la típica extensión del modelo User.
> básicamente tengo un modelo "contentobjects" que se relaciona con el modelo
> "user" y este con "user_profile" (quien lo extiende).
>
> class ContentObjects(models.Model):
>     user = models.ForeignKey(User)
>
> class UserProfile(models.Model):
>     user = models.ForeignKey(User)
>
> el problema es que cuando genero la vista de ContentObject y de la relación
> user "traigo" el user_profile, me genera 2 queries mas
> y esto en total sumando los queries propios de ContentObject me suma 45
> queries solo para 15 registros, y tengo que mostrar
> como 1500... haciendo un test muy básico de eso me llevo como 15 seg cargar
> todo.
>
> Entonces me preguntaba, si yo "replico" los campos -- rompiendo el principio
> DRY -- de user_profile en ContentObject me ahorraría esos queries
> demás, y solo para levantar esos 1500 registros usaría 5 queries..
>
> Ven esto como una practica "aceptable"? o creen que debería encararlo de una
> manera distinta? optimizando los queries talvés?

Echale un vistazo a select_related:
http://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related
con eso podes traer todo junto.

saludos,
SAn



More information about the pyar mailing list