#1802 closed defect (fixed)
changing description name gives error with
| Reported by: | Owned by: | Adrian Holovaty | |
|---|---|---|---|
| Component: | contrib.admin | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
after changing the verbose_name, a manage.py syncdb gave an error:
Traceback (most recent call last):
File "./manage.py", line 11, in ?
execute_manager(settings)
File "django/core/management.py", line 1237, in execute_manager
execute_from_command_line(action_mapping)
File "django/core/management.py", line 1163, in execute_from_command_line
action_mapping[action]()
File "django/core/management.py", line 473, in syncdb
app=app, created_models=created_models)
File "django/dispatch/dispatcher.py", line 347, in send
sender=sender,
File "django/dispatch/robustapply.py", line 47, in robustApply
return receiver(*arguments, **named)
File "django/contrib/auth/management.py", line 34, in create_permissions
p.save()
File "django/db/models/base.py", line 185, in save
','.join(placeholders)), db_values)
File "django/db/backends/util.py", line 12, in execute
return self.cursor.execute(sql, params)
File "django/db/backends/sqlite3/base.py", line 74, in execute
return Database.Cursor.execute(self, query, params)
pysqlite2.dbapi2.IntegrityError: columns content_type_id, codename are not unique
content of the table is:
sqlite> select * from auth_permission; ... 31|Can add TrainingsTagebuch|11|add_trainingstagebuch 32|Can change TrainingsTagebuch|11|change_trainingstagebuch 33|Can delete TrainingsTagebuch|11|delete_trainingstagebuch
executed sql is:
SELECT "auth_permission"."id","auth_permission"."name","auth_permission"."content_type_id","auth_permission"."codename" FROM "auth_permission" WHERE ("auth_permission"."codename" = ? AND "auth_permission"."name" = ? AND "auth_permission"."content_type_id" = ?) ['add_trainingstagebuch', u'Can add Eintrag im Trainingstagebuch', 11]
INSERT INTO "auth_permission" ("name","content_type_id","codename") VALUES (?,?,?) [u'Can add Eintrag im Trainingstagebuch', 11, 'add_trainingstagebuch']
because the name is used in the where lookup django does not find the record and tries to insert a new one.
Change History (2)
comment:1 by , 20 years ago
comment:2 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
fix in django/contrib/auth/management.py:31 instead of:
use:
perhaps one should add a way to reflect the new name also here.