summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2015-10-07 14:04:57 -0400
committerSimon Charette <charette.s@gmail.com>2015-10-12 12:14:26 -0400
commit8bdfabed6563f2ae136ad43e05bb254c9c15811a (patch)
treea829c25dbef70b3ecc6564f0223bfe576c25ce4d
parent6c9f37ea9eafb0ca1b02eb71ae8d375672043824 (diff)
Refs #18012 -- Removed special casing for proxy models deletion.
This isn't required anymore now that reverse foreign keys from proxy models are propagated to their concrete model.
-rw-r--r--django/db/models/deletion.py11
1 files changed, 1 insertions, 10 deletions
diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py
index a8c98f5b83..831e3c03db 100644
--- a/django/db/models/deletion.py
+++ b/django/db/models/deletion.py
@@ -1,5 +1,4 @@
from collections import Counter, OrderedDict
-from itertools import chain
from operator import attrgetter
from django.db import IntegrityError, connections, transaction
@@ -53,18 +52,10 @@ def DO_NOTHING(collector, field, sub_objs, using):
def get_candidate_relations_to_delete(opts):
- # Collect models that contain candidate relations to delete. This may include
- # relations coming from proxy models.
- candidate_models = {opts}
- candidate_models = candidate_models.union(opts.concrete_model._meta.proxied_children)
- # For each model, get all candidate fields.
- candidate_model_fields = chain.from_iterable(
- opts.get_fields(include_hidden=True) for opts in candidate_models
- )
# The candidate relations are the ones that come from N-1 and 1-1 relations.
# N-N (i.e., many-to-many) relations aren't candidates for deletion.
return (
- f for f in candidate_model_fields
+ f for f in opts.get_fields(include_hidden=True)
if f.auto_created and not f.concrete and (f.one_to_one or f.one_to_many)
)