summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2019-03-16 19:30:29 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-04-17 13:24:31 +0200
commit26c4be2ebe918601c0a13d4abb3f3cab49107c73 (patch)
treea7a41f6f612ffdaaefb05d7f71448d78e7ca96d4
parent8180ffba21bf10f4be905cb0d4890dc2bcff2788 (diff)
Refs #18676 -- Enabled fast-delete for m2m_changed senders.
There's no reason to disable fast-delete when an intermediary many-to-many model has connected m2m_changed receivers because the signal is only sent when related manager's clear() and remove() methods are directly called. This must have been overlooked in 1cd6e04cd4f768bcd4385b75de433d497d938f82 given no regression tests fail when m2m_changed is not taken into consideration to determine if fast-delete can be enabled.
-rw-r--r--django/db/models/deletion.py3
1 files changed, 1 insertions, 2 deletions
diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py
index 3a462f1c4c..d886331fcf 100644
--- a/django/db/models/deletion.py
+++ b/django/db/models/deletion.py
@@ -136,8 +136,7 @@ class Collector:
else:
return False
if (signals.pre_delete.has_listeners(model) or
- signals.post_delete.has_listeners(model) or
- signals.m2m_changed.has_listeners(model)):
+ signals.post_delete.has_listeners(model)):
return False
# The use of from_field comes from the need to avoid cascade back to
# parent when parent delete is cascading to child.