Ich versuche, meine App auf die sauberste Weise mit einer E-Mail-Benachrichtigung zu versehen. Wenn sich bestimmte Felder eines Modells ändern, sollte die App eine Benachrichtigung an einen Benutzer senden. Hier ist meine alte Lösung:
%Vor% Das funktionierte gut, während ich ein oder zwei Benachrichtigungstypen hatte, aber danach fühlte ich mich einfach falsch, so viel Code in meiner save()
-Methode zu haben. Also änderte ich den Code auf signalbasiert:
Der Vorteil ist, dass ich Event-Handler in verschiedene Module unterteilen kann, wodurch die Größe von models.py
reduziert wird und ich sie einzeln aktivieren / deaktivieren kann. Der Nachteil ist, dass diese Lösung mehr Code und Signalhandler sind getrennt von Modell selbst und unwissende Leser können sie ganz vermissen. Also, Kollegen, denken Sie, dass es das wert ist?
Ich denke, es ist eine gute Idee. Die "Benutzerdefinierte Signale für entkoppelten Entwurf" Diskussion von der letzten DjangoCon ist eine großartige Quelle dessen, was möglich und angemessen ist mit Signale in Django.