Looking for django Keywords? Try Ask4Keywords

DjangoLes signaux


Paramètres

Classe / méthode Le pourquoi
Classe UserProfile () La classe UserProfile étend le modèle d'utilisateur par défaut de Django .
Méthode create_profile () La méthode create_profile () est exécutée chaque fois qu'un signal post_save modèle d'utilisateur Django est libéré .

Remarques

Maintenant, les détails.

Les signaux de Django sont un moyen d'informer votre application de certaines tâches (telles qu'un modèle avant ou après la sauvegarde ou la suppression) lorsqu'elles ont lieu.

Ces signaux vous permettent d'effectuer des actions de votre choix immédiatement après la sortie du signal.

Par exemple, chaque fois qu'un nouvel utilisateur Django est créé, le modèle utilisateur libère un signal, en associant des paramètres tels que sender=User vous permettant de cibler spécifiquement votre écoute de signaux vers une activité spécifique, dans ce cas, une nouvelle création d'utilisateur. .

Dans l'exemple ci-dessus, l'intention est de créer un objet UserProfile immédiatement après la création d'un objet User. Par conséquent, en écoutant un signal post_save à partir du modèle User (le modèle utilisateur Django par défaut), nous créons un objet UserProfile juste après la création d'un nouvel User .

La documentation de Django fournit une documentation complète sur tous les signaux possibles disponibles .

Toutefois, l’exemple ci-dessus explique en termes pratiques un cas d’utilisation typique lorsqu’on utilise les signaux peut être un ajout utile.

"Un grand pouvoir implique de grandes responsabilités". Il peut être tentant d'avoir des signaux dispersés dans toute votre application ou projet, simplement parce qu'ils sont géniaux. Eh bien non. Parce qu'ils sont cool, ils ne sont pas la solution idéale pour toutes les situations simples qui leur viennent à l'esprit.

Les signaux sont parfaits pour, comme d'habitude, pas tout. Login / Logouts, les signaux sont excellents. Les modèles clés libèrent des signes, comme le modèle utilisateur, si cela convient.

La création de signaux pour chaque modèle de votre application peut être écrasante à un moment donné et faire échec à l’idée générale de l’utilisation des signaux Django.

N'utilisez pas de signaux lorsque (basé sur le livre Two Scoops of Django ):

  • Le signal se rapporte à un modèle particulier et peut être déplacé dans l'une des méthodes de ce modèle, éventuellement appelée par save() .
  • Le signal peut être remplacé par une méthode de gestionnaire de modèles personnalisée.
  • Le signal se rapporte à une vue particulière et peut être déplacé dans cette vue

Il peut être correct d'utiliser des signaux lorsque:

  • Votre récepteur de signal doit apporter des modifications à plusieurs modèles.
  • Vous souhaitez envoyer le même signal depuis plusieurs applications et les faire traiter de la même manière par un récepteur commun.
  • Vous souhaitez invalider un cache après une sauvegarde de modèle.
  • Vous avez un scénario inhabituel qui nécessite un rappel, et il n'y a pas d'autre moyen de le gérer que d'utiliser un signal. Par exemple, vous voulez déclencher quelque chose en fonction de save() ou init() du modèle d'une application tierce. Vous ne pouvez pas modifier le code tiers et l'étendre peut être impossible. Un signal déclenche donc un rappel.

Les signaux Exemples Liés