[pyar] Django .update() con expresion F()

Martín Gaitán gaitan en gmail.com
Jue Mayo 22 15:21:58 ART 2014


2014-05-22 15:12 GMT-03:00 Tim Zenderman <tim en bananadesk.com>:

> Hola Ariel! Si, el problema con hacer el for es que son 150.000 objetos y
> hay señales que se ejecutan con cada save entonces termina siendo muyyyy
> lento (muchas horas).


for entry in Entry.objects.all():
    entry.headline = entry.blog.name
    entry.save(update_fields=['headline'])


Eso no te sirve? sólo estás haciendo el update de ese campo (y no de todo
lo que tenga el modelo Entry) y en tu receiver podés ignorar las señales
post_save que vengan con este campo solo  (post_save manda  como argumento
update_fields)

https://docs.djangoproject.com/en/dev/ref/signals/#post-save

si estás haciendo una consulta extra para traer los campos de entry.blog
pero quizas podés optimizar un poquito más usando select_related

https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

150mil instancias no suena mucho para meterse con raw_queries, creo que
embarrarse las patas muy temprano.

saludos

-- 
mgaitan.github.io
textosypretextos.com.ar <http://textosyprextextos.com.ar>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140522/9d7047f5/attachment-0001.html>


More information about the pyar mailing list