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

Ariel Camino arielcamino en gmail.com
Jue Mayo 22 14:55:43 ART 2014


El 22/05/14 13:46, Tim Zenderman escribió:
> Hola amig en s!
> 
> En un proyecto de django, estoy necesitando hacer un UPDATE en una
> tabla. Este update en particular llevaría una sintaxis de django asi:
> 
>     Entry.objects.update(headline=F('blog__name'))
> 
> donde la tabla Entry tiene FK a la tabla Blog. El problema es que django
> no lo soporta: https://code.djangoproject.com/ticket/14104
> 
> Aca va información sobre la expresión F() de
> django: https://docs.djangoproject.com/en/dev/ref/models/queries/#f-expressions
> 
> Se podrá hacer algo asi en SQL puro? Encontré este link
> aca: http://stackoverflow.com/questions/12518560/django-update-table-using-data-from-another-table
> pero no conosco suficiente de SQL...
> 
> Alguna vez alguien tuvo que hacer algo asi? Como lo resolvieron?
> 
> -- 
> Best,
> Tim Z
> BananaDesk
> bananadesk.com/ <http://bananadesk.com/>
> <https://www.facebook.com/banana.desk.pms> <https://twitter.com/BananaDesk_en> <http://www.pinterest.com/bananadesk/>
> 
> 
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
> 

Hola Tim, si entendí bien, se me ocurren dos opciones, la obvia, lenta y
objetosa:

for entry in Entry.objects.all():
    entry.headline = entry.blog.name

la cruda, rápida y base dependiente:

[...]
cursor.execute('UPDATE tuapp_entry LEFT JOIN tuapp_blog ON
tuapp_entry.blog_id=tuapp_blog.id SET tuapp_entry.headline=tuappblog.name')

algo así debería funcionar, no lo probé.

Suerte!
--
Ariel Camino


More information about the pyar mailing list