diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2013-01-14 13:48:31 -0800 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2013-01-14 13:48:31 -0800 |
| commit | c346d358fdca2e375a0840664165a51a47f4ae69 (patch) | |
| tree | 6f636eb35cb532ab04e82fcc9ca66b1f9aa5abde /django | |
| parent | 4720117a31344483119856fb5ed803fe4c35936f (diff) | |
| parent | a7ed09d13d9532089bd2380edab1df5df96082a6 (diff) | |
Merge pull request #642 from dcramer/patch-1
Send post_delete signals immediately
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/deletion.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 1c3a582fc5..81f74923c2 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -75,17 +75,17 @@ class Collector(object): self.using = using # Initially, {model: set([instances])}, later values become lists. self.data = {} - self.field_updates = {} # {model: {(field, value): set([instances])}} + self.field_updates = {} # {model: {(field, value): set([instances])}} # fast_deletes is a list of queryset-likes that can be deleted without # fetching the objects into memory. - self.fast_deletes = [] + self.fast_deletes = [] # Tracks deletion-order dependency for databases without transactions # or ability to defer constraint checks. Only concrete model classes # should be included, as the dependencies exist only between actual # database tables; proxy models are represented here by their concrete # parent. - self.dependencies = {} # {model: set([models])} + self.dependencies = {} # {model: set([models])} def add(self, objs, source=None, nullable=False, reverse_dependency=False): """ @@ -301,12 +301,11 @@ class Collector(object): pk_list = [obj.pk for obj in instances] query.delete_batch(pk_list, self.using) - # send post_delete signals - for model, obj in self.instances_with_model(): if not model._meta.auto_created: - signals.post_delete.send( - sender=model, instance=obj, using=self.using - ) + for obj in instances: + signals.post_delete.send( + sender=model, instance=obj, using=self.using + ) # update collected instances for model, instances_for_fieldvalues in six.iteritems(self.field_updates): |
