Django

Signaux Django

Built-in signals, pre_save, post_save, pre_delete, custom signals, receivers, signal best practices

18 questions d'entretien·
Confirmé
1

Qu'est-ce qu'un signal dans Django ?

Réponse

Un signal est un mécanisme permettant à certaines parties de l'application d'être notifiées lorsque des actions spécifiques se produisent ailleurs dans le framework. Les signaux permettent un découplage entre l'émetteur de l'événement et les receivers qui réagissent à cet événement. Django fournit plusieurs signaux intégrés comme pre_save, post_save, pre_delete et post_delete pour les opérations sur les modèles.

2

Quel signal est émis juste avant qu'un objet soit sauvegardé dans la base de données ?

Réponse

Le signal pre_save est émis avant que la méthode save() d'un modèle ne soit exécutée. Il permet d'effectuer des modifications sur l'instance avant son enregistrement, comme calculer des valeurs dérivées ou normaliser des données. Ce signal est utile car il est appelé que l'objet soit créé ou mis à jour.

3

Quel décorateur utiliser pour connecter une fonction receiver à un signal Django ?

Réponse

Le décorateur @receiver de django.dispatch permet de connecter une fonction à un signal de manière déclarative. Il prend en paramètre le signal à écouter et optionnellement le sender pour filtrer les émetteurs. Cette approche est plus lisible que la méthode connect() et facilite la maintenance du code.

4

Quel argument du signal post_save permet de distinguer une création d'une mise à jour ?

5

Où est-il recommandé de placer le code des receivers de signaux dans une application Django ?

+15 questions d'entretien

Maîtrise Django pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement