@@ -63,27 +63,20 @@ def __init__(self, *args, **kwargs):
63
63
64
64
# hook into django signals to then trigger our own
65
65
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
-
76
66
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 )
78
68
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 )
81
71
82
- instance = kwargs [ 'instance' ]
83
- signals .delete . send ( sender , pk = instance . pk )
72
+ def __del__ ( self ):
73
+ """Disconnects signals."""
84
74
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 )
87
80
88
81
def get_queryset (self ):
89
82
"""Gets the query set to be used on this manager."""
@@ -259,3 +252,21 @@ def _get_upsert_fields(self, kwargs):
259
252
update_fields .append (field )
260
253
261
254
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