﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
14292	User.objects.create_user does not give object with id field populated in svn release.	Chris Young <chris.young@…>	nobody	"See line below starting with ### for expected behavior vs. actual.

I'm using the following svn release of Django:

{{{
URL: http://code.djangoproject.com/svn/django/trunk
Repository Root: http://code.djangoproject.com/svn
Repository UUID: bcc190cf-cafb-0310-a4f2-bffc1f526a37
Revision: 13858
Node Kind: directory
Schedule: normal
Last Changed Author: lukeplant
Last Changed Rev: 13857
Last Changed Date: 2010-09-15 05:40:23 +0800 (Wed, 15 Sep 2010)
}}}
I'm using Python 2.4.3 (#1, Sep  3 2009, 15:37:37).
I'm using Django with the postgresql_psycopg2 backend.

On 1.2.3 the behavior is as expected:
{{{
>>> import django
>>> django.VERSION
(1, 2, 3, 'final', 0)
>>> from django.contrib.auth.models import User
>>> x = User.objects.get(username='foo')
>>> x.delete()
>>> user = User.objects.create_user('foo', 'bar@bar.com', 'baz')
>>> user.id
323L
>>> user.save()
>>>
}}}
On the svn release, same server, I do not get an id back:
{{{
>>> import django
>>> django.VERSION
(1, 3, 0, 'alpha', 0)
>>> from django.contrib.auth.models import User
>>> x = User.objects.get(username='foo')
>>> x.delete()
>>> user = User.objects.create_user('foo', 'bar@bar.com', 'baz')
>>> user.id
>>>
}}}
### I expect the integer user.id to be returned above, instead it is None.
At this point, the entry is actually in the database again, but If I try to save, I get the further error here because it appears to try to INSERT it again.
{{{
>>> user.save()
Traceback (most recent call last):
  File ""<console>"", line 1, in ?
  File ""/usr/lib/python2.4/site-packages/django/db/models/base.py"", line 434, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)
  File ""/usr/lib/python2.4/site-packages/django/db/models/base.py"", line 527, in save_base
    result = manager._insert(values, return_id=update_pk, using=using)
  File ""/usr/lib/python2.4/site-packages/django/db/models/manager.py"", line 195, in _insert
    return insert_query(self.model, values, **kwargs)
  File ""/usr/lib/python2.4/site-packages/django/db/models/query.py"", line 1480, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File ""/usr/lib/python2.4/site-packages/django/db/models/sql/compiler.py"", line 783, in execute_sql
    cursor = super(SQLInsertCompiler, self).execute_sql(None)
  File ""/usr/lib/python2.4/site-packages/django/db/models/sql/compiler.py"", line 727, in execute_sql
    cursor.execute(sql, params)
  File ""/usr/lib/python2.4/site-packages/django/db/backends/util.py"", line 15, in execute
    return self.cursor.execute(sql, params)
  File ""/usr/lib/python2.4/site-packages/django/db/backends/postgresql_psycopg2/base.py"", line 44, in execute
    return self.cursor.execute(query, args)
IntegrityError: duplicate key value violates unique constraint ""auth_user_username_key""
}}}"	Uncategorized	closed	contrib.auth	dev	Normal	worksforme	create_user		Unreviewed	0	0	0	0	0	0
