
Signaux Django
Built-in signals, pre_save, post_save, pre_delete, custom signals, receivers, signal best practices
1Qu'est-ce qu'un signal dans Django ?
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.
2Quel signal est émis juste avant qu'un objet soit sauvegardé dans la base de données ?
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.
3Quel décorateur utiliser pour connecter une fonction receiver à un signal Django ?
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.
Quel argument du signal post_save permet de distinguer une création d'une mise à jour ?
Où est-il recommandé de placer le code des receivers de signaux dans une application Django ?
+15 questions d'entretien
Autres sujets d'entretien Django
Les bases de Python
Python orienté objet
Fondamentaux Django
Models Django - Bases
Vues Django
Templates Django
Formulaires Django
QuerySets avancés
Authentification Django
Middleware Django
Admin Django
Django REST Framework
Upload de fichiers
Cache Django
Sessions Django
Email Django
Tests Django
Sécurité Django
Déploiement Django
ORM Django avancé
Performance Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django dans un écosystème Microservices
Commandes Django personnalisées
Internationalisation Django
Design Patterns Django
Django Async & ASGI
Settings & Configuration Production
Observabilité & Monitoring
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