diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-03-11 02:48:39 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-03-11 02:48:39 +0000 |
| commit | df8e3e65127252d31417856054d7a2fe3b41fb00 (patch) | |
| tree | 8529a4deeb87b9b5af9ad8aa471fdc56c2b496ff | |
| parent | f2f933450f342058badce379b51b17eea81ad4de (diff) | |
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
| -rw-r--r-- | django/db/models/base.py | 2 | ||||
| -rw-r--r-- | 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 67d1ec974c..99c6cea862 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -268,7 +268,7 @@ class Model(object): 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 988edefa9c..d6ff586ee3 100644 --- a/tests/modeltests/model_inheritance/models.py +++ b/tests/modeltests/model_inheritance/models.py @@ -128,7 +128,9 @@ Test constructor for Restaurant. >>> 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 |
