summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Izquierdo <daniel@makeleaps.com>2019-10-22 09:47:18 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-11-19 10:49:47 +0100
commit4e1d809aa570c0e0736587672607f9d6c22e42c9 (patch)
treec87e8b6c7cc2c7800069d5485b081b2c600bd3b7
parent33eecfa7405ea997669f8edb61c596c3f295c793 (diff)
Refs #27272 -- Added Collector.add_dependency().
-rw-r--r--django/db/models/deletion.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py
index 62afff1f50..3ad9ca0b35 100644
--- a/django/db/models/deletion.py
+++ b/django/db/models/deletion.py
@@ -102,11 +102,15 @@ class Collector:
# deleting, and therefore do not affect the order in which objects have
# to be deleted.
if source is not None and not nullable:
- if reverse_dependency:
- source, model = model, source
- self.dependencies[source._meta.concrete_model].add(model._meta.concrete_model)
+ self.add_dependency(source, model, reverse_dependency=reverse_dependency)
return new_objs
+ def add_dependency(self, model, dependency, reverse_dependency=False):
+ if reverse_dependency:
+ model, dependency = dependency, model
+ self.dependencies[model._meta.concrete_model].add(dependency._meta.concrete_model)
+ self.data.setdefault(dependency, self.data.default_factory())
+
def add_field_update(self, field, value, objs):
"""
Schedule a field update. 'objs' must be a homogeneous iterable