Skip to content
Browse files

Fixed #11116 -- Corrected the deletion of proxy objects. Thanks to Sa…

…muel Adam for the fix.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10824 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent b9b9ca3 commit 2e24596001bce6e827e31510241834ccff76979f @freakboy3742 freakboy3742 committed
Showing with 10 additions and 1 deletion.
  1. +1 −1 django/db/models/base.py
  2. +9 −0 tests/modeltests/proxy_models/models.py
View
2 django/db/models/base.py
@@ -538,7 +538,7 @@ def _collect_sub_objects(self, seen_objs, parent=None, nullable=False):
# traversing to the most remote parent classes -- those with no parents
# themselves -- and then adding those instances to the collection. That
# will include all the child instances down to "self".
- parent_stack = self._meta.parents.values()
+ parent_stack = [p for p in self._meta.parents.values() if p is not None]
while parent_stack:
link = parent_stack.pop()
parent_obj = getattr(self, link.name)
View
9 tests/modeltests/proxy_models/models.py
@@ -276,6 +276,15 @@ class Meta:
>>> UserProxyProxy.objects.all()
[<UserProxyProxy: Bruce>]
+# Proxy objects can be deleted
+>>> u2 = UserProxy.objects.create(name='George')
+>>> UserProxy.objects.all()
+[<UserProxy: Bruce>, <UserProxy: George>]
+>>> u2.delete()
+>>> UserProxy.objects.all()
+[<UserProxy: Bruce>]
+
+
# We can still use `select_related()` to include related models in our querysets.
>>> country = Country.objects.create(name='Australia')
>>> state = State.objects.create(name='New South Wales', country=country)

0 comments on commit 2e24596

Please sign in to comment.
Something went wrong with that request. Please try again.