Loading django/contrib/admin/util.py +0 −3 Original line number Diff line number Diff line Loading @@ -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) Loading tests/proxy_models/fixtures/myhorses.jsondeleted 100644 → 0 +0 −24 Original line number Diff line number Diff line [ { "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 tests/proxy_models/tests.py +1 −21 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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): Loading Loading @@ -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, ())) Loading
django/contrib/admin/util.py +0 −3 Original line number Diff line number Diff line Loading @@ -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) Loading
tests/proxy_models/fixtures/myhorses.jsondeleted 100644 → 0 +0 −24 Original line number Diff line number Diff line [ { "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
tests/proxy_models/tests.py +1 −21 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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): Loading Loading @@ -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, ()))