[pyar] [Django] Existe equivalente a save_model pero para delete?
Dario Ocles
dario.ocles en gmail.com
Mie Ago 25 17:02:14 ART 2010
El día 25 de agosto de 2010 15:20, Dario Ocles <dario.ocles en gmail.com> escribió:
> Muchas gracias por las respuestas, al final ya lo solucione con signals.
>
> Ahora me surge una duda más.
>
> Todos los modelos que necesito implementar esto extienden de un
> "modelo abstracto" ya que comparten muchos datos (al modelo del que
> extienden le agregue el class Meta: abstract = True ). Intente
> conectar la señal post_save y post_delete a este modelo pero no anda,
> asi que tuve que ir modelo por modelo conectando las dos señales con
> el mismo handler para cada una.
>
> No hay forma de conectar las señales a este modelo base? Así me ahorro
> de repetir el mismo bloque de código que conecta las señales a cada
> modelo y me despreocupo si alguien en el futuro agrega una nueva
> sección y se olvida de conectar las señales.
>
> Saludos y muchas gracias.
>
Bueno, me contesto a mi mismo.
Lo que hice fue conectar todas las señales de post_save y post_delete
a los handler correspondientes. Dentro del handler para saber cuales
son las que me interesa puse un if preguntando si es o no una subclase
del modelo que me interesaba atrapar.
from django.db.models.signals import post_save, post_delete
def handler_post_delete(sender, instance, *args, **kwargs):
if not issubclass(sender, Page):
return
#Codigo de borrar la seccion de la lista de secciones
post_delete.connect(handler_post_delete)
def handler_post_save(sender, instance, created, *args, **kwargs):
if not issubclass(sender, Page):
return
#Codigo de agregar a la lista de secciones
post_save.connect(handler_post_save)
Saludos.
More information about the pyar
mailing list