From df8e3e65127252d31417856054d7a2fe3b41fb00 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Tue, 11 Mar 2008 02:48:39 +0000 Subject: [PATCH] queryset-refactor: Fixed an oversight in Model.save() that was preventing updates to parent models beyond the initial save. Fixed #6706. git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7218 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/base.py | 2 +- tests/modeltests/model_inheritance/models.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/django/db/models/base.py b/django/db/models/base.py index 67d1ec974c160..99c6cea86288f 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -268,7 +268,7 @@ def save(self, raw=False, cls=None): self.save(raw, parent) setattr(self, field.attname, self._get_pk_val(parent._meta)) - non_pks = [f for f in self._meta.local_fields if not f.primary_key] + non_pks = [f for f in meta.local_fields if not f.primary_key] # First, try an UPDATE. If that doesn't update anything, do an INSERT. pk_val = self._get_pk_val(meta) diff --git a/tests/modeltests/model_inheritance/models.py b/tests/modeltests/model_inheritance/models.py index 988edefa9cf1a..d6ff586ee328e 100644 --- a/tests/modeltests/model_inheritance/models.py +++ b/tests/modeltests/model_inheritance/models.py @@ -128,7 +128,9 @@ def __unicode__(self): >>> r.save() # Test the constructor for ItalianRestaurant. ->>> ir = ItalianRestaurant(name='Ristorante Miron', address='1234 W. Elm', serves_hot_dogs=False, serves_pizza=False, serves_gnocchi=True, rating=4) +>>> ir = ItalianRestaurant(name='Ristorante Miron', address='1234 W. Ash', serves_hot_dogs=False, serves_pizza=False, serves_gnocchi=True, rating=4) +>>> ir.save() +>>> ir.address = '1234 W. Elm' >>> ir.save() # Make sure Restaurant and ItalianRestaurant have the right fields in the right