summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2015-12-10 12:06:01 +0500
committerTim Graham <timograham@gmail.com>2015-12-10 18:11:45 -0500
commit515f149e4d51ddcf32db0be440da726c0ca867b4 (patch)
tree5e365da012e40bfae42b2bcfaa1e212e4ec3f2d5 /django
parente7bdc72e1746f11497b20336cfc8798bfa9a46ba (diff)
[1.9.x] Fixed #25883 -- Fixed admin deletion page summary counts for related objects.
Backport of 8ab58b80529c5206654c1042a4ddcf2da364f8ec from master
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/utils.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py
index 2337fe62a5..e85e2de0d3 100644
--- a/django/contrib/admin/utils.py
+++ b/django/contrib/admin/utils.py
@@ -163,8 +163,9 @@ def get_deleted_objects(objs, opts, user, admin_site, using):
to_delete = collector.nested(format_callback)
protected = [format_callback(obj) for obj in collector.protected]
+ model_count = {model._meta.verbose_name_plural: len(objs) for model, objs in collector.model_objs.items()}
- return to_delete, collector.model_count, perms_needed, protected
+ return to_delete, model_count, perms_needed, protected
class NestedObjects(Collector):
@@ -172,7 +173,7 @@ class NestedObjects(Collector):
super(NestedObjects, self).__init__(*args, **kwargs)
self.edges = {} # {from_instance: [to_instances]}
self.protected = set()
- self.model_count = defaultdict(int)
+ self.model_objs = defaultdict(set)
def add_edge(self, source, target):
self.edges.setdefault(source, []).append(target)
@@ -187,7 +188,7 @@ class NestedObjects(Collector):
self.add_edge(getattr(obj, related_name), obj)
else:
self.add_edge(None, obj)
- self.model_count[obj._meta.verbose_name_plural] += 1
+ self.model_objs[obj._meta.model].add(obj)
try:
return super(NestedObjects, self).collect(objs, source_attr=source_attr, **kwargs)
except models.ProtectedError as e: