Ist es geeignet, Django-Signale innerhalb derselben App zu verwenden?

8

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:

%Vor%

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?

    
Alexander Lebedev 16.04.2010, 18:14
quelle

2 Antworten

4

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.

    
Ludwik Trammer 16.04.2010, 19:51
quelle
3

Ich denke, die Verwendung von Signalen ist eine gute Designentscheidung. Die Benachrichtigung ist nicht Teil des Speicherns, sie ist eine Konsequenz des Speicherns. Der Umgang mit diesen Folgen ist der Grund, warum Django Signale liefert.

    
Zach 16.04.2010 19:19
quelle

Tags und Links