[pyar] [django] Duda con signals y m2m

Alessandro Odetti aodetti en gmail.com
Mar Oct 11 13:10:06 ART 2016


Juan, estoy un 95% seguro sin probarlo en este instante, de que no podes
hacer un model.elfieldm2m.add(modelrelacionado), antes de que hagas el save
del propio "model", ya que necesitas el id para generar las relaciones.

El 11 de octubre de 2016, 13:03, Varela Matias <matu.varela en gmail.com>
escribió:

> Hola Alessandro,
> Siempre se debe ejecutar el método después de guardar, en él se decide que
> hacer dependiendo de la existencia o no de relaciones m2m. No sirve
> bindearlo a ambos signals, ya que en el post_save no sé de sus relaciones,
> y en el m2m_changed no se dispará si no las hay.
>
> Hola Juan,
> esto es lo primero que hice, pero en el save no tenia aún las relaciones
> m2m. Lo voy a probar nuevamente, no recuerdo bien que pasaba.
>
> Gracias a ambos
>
> El mar., 11 oct. 2016 a las 12:41, Alessandro Odetti (<aodetti en gmail.com>)
> escribió:
>
>> Hola creo que deberías brindar un poco mas de info acerca de que es lo
>> que haces después del save y en cuando debe y cuando no ser ejecutado.
>> Por ejemplo, cuando es necesario ejecutarlo si no tiene otros modelos
>> relacionados, o cuando es necesario ejecutarlo solo si tiene relaciones, o
>> si el método se pudiera ejecutar en ambos casos, bindeandolo tanto al
>> m2m_changed como al post_save...
>>
>>
>>
>> El 11 de octubre de 2016, 12:17, Varela Matias <matu.varela 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
>>
>>
>> _______________________________________________
>> 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
>>
>>
>>
>>
>> --
>> *- Alessandro Odetti -   *
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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
>



-- 
*- Alessandro Odetti -   *
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20161011/08b7a561/attachment.html>


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