Fixed Documents deleted via a queryset don't call any signals (#105)

This commit is contained in:
Ross Lawley
2013-01-28 13:32:21 +00:00
parent de2f774e85
commit f182daa85e
3 changed files with 47 additions and 5 deletions

View File

@@ -364,10 +364,15 @@ class QuerySet(object):
queryset = self.clone()
doc = queryset._document
# Handle deletes where skips or limits have been applied
if queryset._skip or queryset._limit:
has_delete_signal = (
signals.pre_delete.has_receivers_for(self._document) or
signals.post_delete.has_receivers_for(self._document))
# Handle deletes where skips or limits have been applied or has a
# delete signal
if queryset._skip or queryset._limit or has_delete_signal:
for doc in queryset:
doc.delete()
doc.delete(safe=safe)
return
delete_rules = doc._meta.get('delete_rules') or {}