@@ -44,7 +44,8 @@ def __init__(self, verbose_name=None, bases=(models.Model,),
44
44
user_related_name = '+' , table_name = None , inherit = False ,
45
45
excluded_fields = None , history_id_field = None ,
46
46
history_change_reason_field = None ,
47
- user_model = None , get_user = default_get_user ):
47
+ user_model = None , get_user = default_get_user ,
48
+ cascade_delete_history = False ):
48
49
self .user_set_verbose_name = verbose_name
49
50
self .user_related_name = user_related_name
50
51
self .table_name = table_name
@@ -53,6 +54,7 @@ def __init__(self, verbose_name=None, bases=(models.Model,),
53
54
self .history_change_reason_field = history_change_reason_field
54
55
self .user_model = user_model
55
56
self .get_user = get_user
57
+ self .cascade_delete_history = cascade_delete_history
56
58
if excluded_fields is None :
57
59
excluded_fields = []
58
60
self .excluded_fields = excluded_fields
@@ -340,7 +342,11 @@ def post_save(self, instance, created, **kwargs):
340
342
self .create_historical_record (instance , created and '+' or '~' )
341
343
342
344
def post_delete (self , instance , ** kwargs ):
343
- self .create_historical_record (instance , '-' )
345
+ if self .cascade_delete_history :
346
+ manager = getattr (instance , self .manager_name )
347
+ manager .all ().delete ()
348
+ else :
349
+ self .create_historical_record (instance , '-' )
344
350
345
351
def create_historical_record (self , instance , history_type ):
346
352
history_date = getattr (instance , '_history_date' , now ())
0 commit comments