From c769c266017c9a527444f8f026c7a76b394d0412 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 16 Aug 2013 07:57:55 -0400 Subject: [PATCH] [1.6.x] Revert "Fixed #18491 -- deleting a proxy doesn't show warning about cascade deletes" This reverts commit 2b48fcc607010065c0f8107baf669dd41b164f3c. It introduced a regression (#20777) which we can't easily fix in 1.6. --- django/contrib/admin/util.py | 3 --- tests/proxy_models/fixtures/myhorses.json | 24 ----------------------- tests/proxy_models/tests.py | 22 +-------------------- 3 files changed, 1 insertion(+), 48 deletions(-) delete mode 100644 tests/proxy_models/fixtures/myhorses.json diff --git a/django/contrib/admin/util.py b/django/contrib/admin/util.py index dd9047c428..b31756d762 100644 --- a/django/contrib/admin/util.py +++ b/django/contrib/admin/util.py @@ -155,9 +155,6 @@ class NestedObjects(Collector): if source_attr: self.add_edge(getattr(obj, source_attr), obj) else: - if obj._meta.proxy: - # Take concrete model's instance to avoid mismatch in edges - obj = obj._meta.concrete_model(pk=obj.pk) self.add_edge(None, obj) try: return super(NestedObjects, self).collect(objs, source_attr=source_attr, **kwargs) diff --git a/tests/proxy_models/fixtures/myhorses.json b/tests/proxy_models/fixtures/myhorses.json deleted file mode 100644 index 15943064c8..0000000000 --- a/tests/proxy_models/fixtures/myhorses.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - { - "pk": 100, - "model": "proxy_models.BaseUser", - "fields": { - "name": "Django Pony" - } - }, - { - "pk": 100, - "model": "proxy_models.TrackerUser", - "fields": { - "status": "emperor" - } - }, - { - "pk": 100, - "model": "proxy_models.Issue", - "fields": { - "summary": "Pony's Issue", - "assignee": 100 - } - } -] \ No newline at end of file diff --git a/tests/proxy_models/tests.py b/tests/proxy_models/tests.py index 5cc5ef5478..0124f03d23 100644 --- a/tests/proxy_models/tests.py +++ b/tests/proxy_models/tests.py @@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals import copy from django.conf import settings -from django.contrib import admin from django.contrib.contenttypes.models import ContentType from django.core import management from django.core.exceptions import FieldError @@ -15,7 +14,7 @@ from django.test import TestCase from .models import (MyPerson, Person, StatusPerson, LowerStatusPerson, MyPersonProxy, Abstract, OtherPerson, User, UserProxy, UserProxyProxy, Country, State, StateProxy, TrackerUser, BaseUser, Bug, ProxyTrackerUser, - Improvement, ProxyProxyBug, ProxyBug, ProxyImprovement, Issue) + Improvement, ProxyProxyBug, ProxyBug, ProxyImprovement) class ProxyModelTests(TestCase): @@ -361,22 +360,3 @@ class ProxyModelTests(TestCase): management.call_command('loaddata', 'mypeople.json', verbosity=0) p = MyPerson.objects.get(pk=100) self.assertEqual(p.name, 'Elvis Presley') - - -class ProxyModelAdminTests(TestCase): - fixtures = ['myhorses'] - - def test_cascade_delete_proxy_model_admin_warning(self): - """ - Test if admin gives warning about cascade deleting models referenced - to concrete model by deleting proxy object. - """ - tracker_user = TrackerUser.objects.all()[0] - base_user = BaseUser.objects.all()[0] - issue = Issue.objects.all()[0] - with self.assertNumQueries(7): - collector = admin.util.NestedObjects('default') - collector.collect(ProxyTrackerUser.objects.all()) - self.assertTrue(tracker_user in collector.edges.get(None, ())) - self.assertTrue(base_user in collector.edges.get(None, ())) - self.assertTrue(issue in collector.edges.get(tracker_user, ()))