@@ -63,27 +63,20 @@ def __init__(self, *args, **kwargs):
6363
6464 # hook into django signals to then trigger our own
6565
66- def on_model_save (sender , ** kwargs ):
67- """When a model gets created or updated."""
68-
69- created , instance = kwargs ['created' ], kwargs ['instance' ]
70-
71- if created :
72- signals .create .send (sender , pk = instance .pk )
73- else :
74- signals .update .send (sender , pk = instance .pk )
75-
7666 django .db .models .signals .post_save .connect (
77- on_model_save , sender = self .model , weak = False )
67+ self . _on_model_save , sender = self .model , weak = False )
7868
79- def on_model_delete ( sender , ** kwargs ):
80- """When a model gets deleted."""
69+ django . db . models . signals . pre_delete . connect (
70+ self . _on_model_delete , sender = self . model , weak = False )
8171
82- instance = kwargs [ 'instance' ]
83- signals .delete . send ( sender , pk = instance . pk )
72+ def __del__ ( self ):
73+ """Disconnects signals."""
8474
85- django .db .models .signals .pre_delete .connect (
86- on_model_delete , sender = self .model , weak = False )
75+ django .db .models .signals .post_save .disconnect (
76+ self ._on_model_save , sender = self .model , weak = False )
77+
78+ django .db .models .signals .pre_delete .disconnect (
79+ self ._on_model_delete , sender = self .model , weak = False )
8780
8881 def get_queryset (self ):
8982 """Gets the query set to be used on this manager."""
@@ -259,3 +252,21 @@ def _get_upsert_fields(self, kwargs):
259252 update_fields .append (field )
260253
261254 return insert_fields , update_fields
255+
256+ @staticmethod
257+ def _on_model_save (sender , ** kwargs ):
258+ """When a model gets created or updated."""
259+
260+ created , instance = kwargs ['created' ], kwargs ['instance' ]
261+
262+ if created :
263+ signals .create .send (sender , pk = instance .pk )
264+ else :
265+ signals .update .send (sender , pk = instance .pk )
266+
267+ @staticmethod
268+ def _on_model_delete (sender , ** kwargs ):
269+ """When a model gets deleted."""
270+
271+ instance = kwargs ['instance' ]
272+ signals .delete .send (sender , pk = instance .pk )
0 commit comments