From bc88c7c8b95a93de046e18f4e0a198417c2c38bf Mon Sep 17 00:00:00 2001 From: Nicola Suiter Date: Tue, 28 Jun 2016 13:33:50 +0100 Subject: [PATCH 1/2] re #5 - Delete with model inheritance --- immutablemodel/models.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/immutablemodel/models.py b/immutablemodel/models.py index 6ca174f..fbc20e0 100644 --- a/immutablemodel/models.py +++ b/immutablemodel/models.py @@ -1,5 +1,6 @@ # encoding: utf-8 -from django.db import models +from django.db import models, router +from django.db.models.deletion import Collector from django.utils import six @@ -194,7 +195,12 @@ def delete(self): raise CantDeleteImmutableException( "%s is immutable and cannot be deleted" % self ) - self._deleting_immutable_model = True + collector = Collector(using=router.db_for_write(self.__class__, instance=self)) + collector.collect([self], collect_related=False) + collector.sort() + for model, instances in collector.data.items(): + for instance in instances: + instance._deleting_immutable_model = True super(ImmutableModel, self).delete() delattr(self, '_deleting_immutable_model') From 174c44c7e1bddc09f67cd3be4483db553e6963cc Mon Sep 17 00:00:00 2001 From: Jamie Cockburn Date: Mon, 4 Jul 2016 18:34:32 +0100 Subject: [PATCH 2/2] re #5 - Upped version number --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f69e98e..c98e207 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( name = 'django-immutablemodel', - version = '0.3.4', + version = '0.3.5', description="A base class for Django to allow immutable fields on Models", long_description=README + '\n\n' + NEWS, classifiers=[