Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
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...
commit 686c5a2f884b0b5f318a6dd6b6ba7d09ff0180f3 1 parent bff39bf
@malcolmt malcolmt authored
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
"""
Please sign in to comment.
Something went wrong with that request. Please try again.