trigger - events django
Django: ¿cómo puedo saber si la señal post_save se activa en un nuevo objeto? (2)
Necesito hacer un poco de post-procesamiento de fondo en los objetos recién creados en Django. Este postproceso solo debe ejecutarse en objetos nuevos, no en objetos que se acaban de actualizar.
Sé que en pre_save puedo verificar si el objeto tiene una identificación, si no tiene, entonces es un objeto nuevo. Pero el problema es que en el postprocesamiento necesito acceder a la identificación (para poder guardar los resultados en la base de datos).
¿Cómo puedo hacer esto de una manera limpia?
Como https://docs.djangoproject.com/en/dev/ref/signals/#post-save declaró y @seler señaló, pero con un ejemplo:
def keep_track_save(sender, instance, created, **kwargs):
action = ''save'' if created else ''update''
save_duplicate((instance.id, instance.__class__.__name__, action))
post_save.connect(keep_track_save, sender=Group)
Eche un vistazo a los documentos: https://docs.djangoproject.com/en/dev/ref/signals/#post-save
Hay un argumento con nombre created
que se establecerá en True
si es un objeto nuevo.