2012-06-18 19 views
11

Estoy usando la señal de post_save de Django para enviar correos electrónicos a los usuarios cada vez que se agrega un artículo nuevo al sitio. Sin embargo, los usuarios aún reciben correos electrónicos nuevos cada vez que uso el método save() para artículos ya creados. ¿Cómo es posible recibir correos electrónicos solo cuando se agregó NUEVA entrada?Señales de Django para la nueva entrada solo

Gracias de antemano

Respuesta

28

La señal post_save recibe un argumento booleano created que indica si se creó instance guardado.

def my_callback(sender, **kwargs): 
    if kwargs['created']: 
     print('Instance is new') 
+0

¡Muchas gracias! Funcionó como por arte de magia. –

0

Comprobación de instance.id es una buena manera de determinar si la instancia es "nuevo". Esto solo funciona si usa identificadores que su base de datos genera automáticamente.

+0

No funcionará en una señal post_save IIRC - en ese momento la instancia ya tiene una identificación. –

Cuestiones relacionadas