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') 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=[