Browse files

Fixed the empty model saving case so that it retrieves the primary ke…

…y id. Also

updated the tests to test this case.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@3118 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent bff39bf commit 686c5a2f884b0b5f318a6dd6b6ba7d09ff0180f3 @malcolmt malcolmt committed Jun 12, 2006
Showing with 5 additions and 2 deletions.
  1. +2 −2 django/db/models/base.py
  2. +3 −0 tests/modeltests/empty/models.py
View
4 django/db/models/base.py
@@ -187,14 +187,14 @@ def save(self):
cursor.execute("INSERT INTO %s (%s) VALUES (%s)" % \
(backend.quote_name(self._meta.db_table), ','.join(field_names),
','.join(placeholders)), db_values)
- if self._meta.has_auto_field and not pk_set:
- setattr(self, self._meta.pk.attname, backend.get_last_insert_id(cursor, self._meta.db_table, self._meta.pk.column))
else:
# Create a new record with defaults for everything.
cursor.execute("INSERT INTO %s (%s) VALUES (%s)" %
(backend.quote_name(self._meta.db_table),
backend.quote_name(self._meta.pk.column),
backend.get_pk_default_value()))
+ if self._meta.has_auto_field and not pk_set:
+ setattr(self, self._meta.pk.attname, backend.get_last_insert_id(cursor, self._meta.db_table, self._meta.pk.column))
transaction.commit_unless_managed()
# Run any post-save hooks.
View
3 tests/modeltests/empty/models.py
@@ -12,10 +12,13 @@ class Empty(models.Model):
API_TESTS = """
>>> m = Empty()
+>>> m.id
>>> m.save()
>>> m2 = Empty()
>>> m2.save()
>>> len(Empty.objects.all())
2
+>>> m.id is not None
+True
"""

0 comments on commit 686c5a2

Please sign in to comment.