#18085 closed Bug (worksforme)
sqllite integer is signed but django recognize as unsigned
| Reported by: | robotr | Owned by: | nobody |
|---|---|---|---|
| Component: | Documentation | Version: | 1.4 |
| Severity: | Normal | Keywords: | tutorial |
| Cc: | m.r.sopacua@… | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
When making "Writing your first Django app, part 2", I recieve this below:
IntegrityError at /admin/ column username is not unique Request Method: POST Request URL: http://127.0.0.1:8000/admin/ Django Version: 1.4 Exception Type: IntegrityError Exception Value: column username is not unique Exception Location: D:\Python2.7.3\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 337 Python Executable: D:\Python2.7.3\python.exe Python Version: 2.7.3 Python Path: ['', 'D:\\studio\\mysite', 'D:\\studio', 'C:\\Windows\\system32\\python27.zip', 'D:\\Python2.7.3\\DLLs', 'D:\\Python2.7.3\\lib', 'D:\\Python2.7.3\\lib\\plat-win', 'D:\\Python2.7.3\\lib\\lib-tk', 'D:\\Python2.7.3', 'D:\\Python2.7.3\\lib\\site-packages'] Server time: Sun, 8 Apr 2012 23:12:11 +0800
the superuser id is "1", but as django said is "4294967296"
my superuser can not login.
Change History (4)
comment:1 by , 13 years ago
| Resolution: | → needsinfo |
|---|---|
| Status: | new → closed |
comment:2 by , 13 years ago
| Resolution: | needsinfo |
|---|---|
| Status: | closed → reopened |
| Type: | Uncategorized → Bug |
Hello, same error. Here is my traceback.
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.flatpages')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in wrapper
213. return self.admin_view(view, cacheable)(*args, **kwargs)
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in inner
195. return self.login(request)
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in login
326. return login(request, **defaults)
File "C:\Python27\lib\site-packages\django\views\decorators\debug.py" in sensitive_post_parameters_wrapper
69. return view(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\contrib\auth\views.py" in login
49. auth_login(request, form.get_user())
File "C:\Python27\lib\site-packages\django\contrib\auth\__init__.py" in login
76. user_logged_in.send(sender=user.__class__, request=request, user=user)
File "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py" in send
172. response = receiver(signal=self, sender=sender, **named)
File "C:\Python27\lib\site-packages\django\contrib\auth\models.py" in update_last_login
26. user.save()
File "C:\Python27\lib\site-packages\django\db\models\base.py" in save
463. self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "C:\Python27\lib\site-packages\django\db\models\base.py" in save_base
551. result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
File "C:\Python27\lib\site-packages\django\db\models\manager.py" in _insert
203. return insert_query(self.model, objs, fields, **kwargs)
File "C:\Python27\lib\site-packages\django\db\models\query.py" in insert_query
1576. return query.get_compiler(using=using).execute_sql(return_id)
File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
910. cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\util.py" in execute
40. return self.cursor.execute(sql, params)
File "C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py" in execute
337. return Database.Cursor.execute(self, query, params)
Exception Type: IntegrityError at /admin/
Exception Value: column username is not unique
Thx
comment:3 by , 13 years ago
| Cc: | added |
|---|---|
| Component: | Uncategorized → Documentation |
| Keywords: | tutorial added |
| Resolution: | → worksforme |
| Status: | reopened → closed |
I don't see how the traceback relates to your bug description. The SQL error points to the username field, which is a character field and your bug report mentions signed/unsigned issues with a numeric field. Many of us have gone through the tutorial without issues so try to figure out what you have done differently or at the very least explain how you came to the conclusion that above traceback is caused by a signedness issue.
comment:4 by , 13 years ago
That's a very puzzling traceback. What it shows happening is Django auth code logging a user in (auth_login(request, form.get_user())), which causes the user logged in signal to fire (user_logged_in.send(sender=user.__class__, request=request, user=user)), which has a receiver in the auth models file (update_last_login) that sets the user's last login time to now and saves the user. Now things start to get weird. The Django ORM level code, instead of taking the path of saving an existing User model instance, takes the path of inserting a new row into the auth_user table. This path would ordinarily only be taken if the User instance primary key value was not set, but it must be set since the User model was retrieved from the DB earlier, and would not have been cleared by anything shown as installed in the system (full traceback is showing only Django code installed). At any rate this "new" user has an identical username to an existing user (likely the one logging in!) so the DB raises an integrity error.
This is two people now reporting this exception on what looks to be some version of Windows, Django 1.4.1, and Python 2.7.3. However I cannot recreate it on my Windows7/Django1.4.1/Python2.7.3 machine. The original report mentions 'the superuser id is "1", but as django said is "4294967296" my superuser can not login' but does not give any details of where that 42.. number was seen. It is a special number:
>>> hex(4294967296) '0x100000000L' >>>
1 in the high 32-bits of a 64-bit number, 0 in the low 32 bits, but how a 1 would get to be stored that way isn't clear to me. My best guess is there is some 32-bit vs. 64-bit incompatibility in the underlying Python/sqlite libraries installed. FWIW in my working setup I've got 64-bit Python installed on 64-bit Windows.
Hi, can you provide more info? Especially a traceback would be helpful