[pyar] Consulta Django

Juan Antonio Alvarez jualvarez en gmail.com
Jue Jul 27 17:40:39 ART 2017


2017-07-27 17:08 GMT-03:00 Sofi Denner <sofi.denner en gmail.com>:

> Si, esa parte ya la habia entendido. Y como podés ver, también, en el mail
> anterior: mi problema ya esta solucionado :)
> Mi nueva pregunta era solo de curiosidad para entender mejor como funciona
> el prefecht.
> Gracias igual por tu tiempo.
> Un abrazo!
>

Prefetch sirve para traer las relaciones externas de un objeto en una sola
consulta. No creo que aplique a esa línea de código particular.

Por ejemplo si tenés

Autor

Libro -> Autor

Cuando hacés algo como:

for libro in Libro.objects.all():
   print(libro.autor.nombre)

Ahí hace una consulta nueva por cada iteración

En cambio si hicieras

for libro in Libro.objects.all().select_related('autor'):
   print(libro.autor.name)

Lo resuelve todo en una sola consulta.

Prefetch es lo mismo, solo que para generic relations o relaciones inversas
(hace una consulta exra por cada prefetch, pero arma el objeto entero en
memoria en vez de traerlo para cada resultado del query original).

Saludos,

Juan
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170727/195af737/attachment.html>


Más información sobre la lista de distribución pyar