[pyar] [django] Duda con signals y m2m

Ezequiel Golub ezequiel.golub en gmail.com
Mie Oct 12 07:40:28 ART 2016


Lo que hice para un proyecto chico es tener una tarea en celery con
countdown de 30 segundos, disparada por el post_save. Es medio sucio, y si
fuera a tener mucho tráfico cada formulario seguro voy a tener problemas
pero necesitaba solucionarlo rápido. Lo que hace esto es demorar la
ejecución por 30 segundos, lo cual le da tiempo a Django de terminar de
guardar todo, entonces vos volves a interrogar la bbdd para ver el nuevo
estado y ahí decidís que hacer. También podes hookear el pre_save, guardar
el estado anterior y pasárselo al task de celery para poder inspeccionar
los cambios.
Lo use para mandar un resumen de "usuarios asignados y desafinados" a
cierto proyecto.

Abz

Eze
El El mar, 11 de oct. de 2016 a las 16:27, Daniel <dmlistapython en gmail.com>
escribió:

>
> Buenas, tengo este problema:
>
> Necesito llamar a un método de un modelo de django luego de que este se
> guarda. Este modelo tiene un m2m a otro, por lo que bindee al signal
> m2m_changed para que se ejecute ese método (el post_save no me sirve porque
> aún no tiene las relaciones m2m guardadas)
>
> El tema es que puede no tener relaciones mediente ese m2m, por lo que ese
> signal nunca se dispara.
>
> Se me ocurrió añadir un task en celery para que ejecute ese método luego
> de que todo está guardado, y creo que funcionaría, pero quizás habia alguna
> forma de hacer esto sin celery.
>
> ¿Hay manera de llamar a un método luego de que TODO es salvado en la db?
> ¿se les ocurre otra forma más "djangera" de hacer esto?
>
> Saludos y gracias de antemano
>
>
> No termino de entender el problema
> -si puede NO tener relaciones mediante ese m2m ¿cómo se relacionarían para
> hacer algo con él? (o si es en el modelo "padre" ¿no te sirve el post_save?)
> -Si las tiene -las crea- ¿porqué no se dispara m2m_changed?
>
>
> _______________________________________________
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20161012/2e1690d1/attachment.html>


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