diff options
| author | Daniel Izquierdo <daniel@makeleaps.com> | 2019-10-22 09:47:18 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-11-19 10:49:47 +0100 |
| commit | 4e1d809aa570c0e0736587672607f9d6c22e42c9 (patch) | |
| tree | c87e8b6c7cc2c7800069d5485b081b2c600bd3b7 | |
| parent | 33eecfa7405ea997669f8edb61c596c3f295c793 (diff) | |
Refs #27272 -- Added Collector.add_dependency().
| -rw-r--r-- | django/db/models/deletion.py | 10 |
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 |
