Django

Señales de Django

Señales integradas, pre_save, post_save, pre_delete, señales personalizadas, receivers, buenas prácticas de señales

18 preguntas de entrevista·
Mid-Level
1

¿Qué es una señal en Django?

Respuesta

Una señal es un mecanismo que permite que ciertas partes de la aplicación sean notificadas cuando ocurren acciones específicas en otra parte del framework. Las señales permiten desacoplar el emisor del evento de los receivers que reaccionan a ese evento. Django proporciona varias señales integradas como pre_save, post_save, pre_delete y post_delete para las operaciones sobre modelos.

2

¿Qué señal se emite justo antes de que un objeto sea guardado en la base de datos?

Respuesta

La señal pre_save se emite antes de que se ejecute el método save() de un modelo. Permite realizar modificaciones en la instancia antes de guardarla, como calcular valores derivados o normalizar datos. Esta señal es útil porque se invoca tanto si el objeto se está creando como si se está actualizando.

3

¿Qué decorador se debe usar para conectar una función receiver a una señal de Django?

Respuesta

El decorador @receiver de django.dispatch permite conectar una función a una señal de forma declarativa. Recibe como parámetro la señal a escuchar y, opcionalmente, el sender para filtrar los emisores. Este enfoque es más legible que el método connect() y facilita el mantenimiento del código.

4

¿Qué argumento de la señal post_save permite distinguir una creación de una actualización?

5

¿Dónde se recomienda colocar el código de los receivers de señales en una aplicación Django?

+15 preguntas de entrevista

Domina Django para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis