加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – IntegrityError:(1062,密钥重复项)

发布时间:2020-12-20 11:20:26 所属栏目:Python 来源:网络整理
导读:我试图清除我的数据库mydb,并重新填充它以查看我的Django模型的一些更改的效果.然后这一切都发生了.我回滚到我早期的模型设置,但我仍然得到错误. 我不是MySQL专家,我不能完全弄清楚问题以及如何处理它;我尝试使用其他名称创建一个新数据库,但这没有发生.我认
我试图清除我的数据库mydb,并重新填充它以查看我的Django模型的一些更改的效果.然后这一切都发生了.我回滚到我早期的模型设置,但我仍然得到错误.

我不是MySQL专家,我不能完全弄清楚问题以及如何处理它;我尝试使用其他名称创建一个新数据库,但这没有发生.我认为这是我的Django项目创建的问题.

这是所有信息:


C:Users...>python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table forum_category
Creating table forum_thread

Creating table forum_post

You just installed Django's auth system,which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'me'): admin
E-mail address: example@example.com
Password:
Password (again):
Superuser created successfully.
Traceback (most recent call last):
  File "manage.py",line 14,in 
    execute_manager(settings)
  File "C:Python27libsite-packagesdjangocoremanagement__init__.py",line 438,in execute_manager utility.execute()
  File "C:Python27libsite-packagesdjangocoremanagement__init__.py",line 379,in execute self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:Python27libsite-packagesdjangocoremanagementbase.py",line 191,in run_from_argv self.execute(*args,**options.__dict__)
  File "C:Python27libsite-packagesdjangocoremanagementbase.py",line 220,in execute output = self.handle(*args,**options)
  File "C:Python27libsite-packagesdjangocoremanagementbase.py",line 351,in handle return self.handle_noargs(**options)
  File "C:Python27libsite-packagesdjangocoremanagementcommandssyncdb.py",line 109,in handle_noargs emit_post_sync_signal(created_models,verbosity,interactive,db)
  File "C:Python27libsite-packagesdjangocoremanagementsql.py",line 190,in emit_post_sync_signal interactive=interactive,db=db)
  File "C:Python27libsite-packagesdjangodispatchdispatcher.py",line 172,in send response = receiver(signal=self,sender=sender,**named)
  File "C:Python27libsite-packagesdjangocontribauthmanagement__init__.p ",line 51,in create_permissions content_type=ctype
  File "C:Python27libsite-packagesdjangodbmodelsmanager.py",line 138,in create return self.get_query_set().create(**kwargs)
  File "C:Python27libsite-packagesdjangodbmodelsquery.py",line 360,in create obj.save(force_insert=True,using=self.db)
  File "C:Python27libsite-packagesdjangodbmodelsbase.py",line 460,in save self.save_base(using=using,force_insert=force_insert,force_update=force_up
date)
  File "C:Python27libsite-packagesdjangodbmodelsbase.py",line 553,in save_base result = manager._insert(values,return_id=update_pk,using=using)
  File "C:Python27libsite-packagesdjangodbmodelsmanager.py",line 195,in _insert return insert_query(self.model,values,**kwargs)
  File "C:Python27libsite-packagesdjangodbmodelsquery.py",line 1436,in insert_query return query.get_compiler(using=using).execute_sql(return_id)
  File "C:Python27libsite-packagesdjangodbmodelssqlcompiler.py",line 791,in execute_sql cursor = super(SQLInsertCompiler,self).execute_sql(None)
  File "C:Python27libsite-packagesdjangodbmodelssqlcompiler.py",line 735,in execute_sql cursor.execute(sql,params)
  File "C:Python27libsite-packagesdjangodbbackendsutil.py",line 34,in execute return self.cursor.execute(sql,params)
  File "C:Python27libsite-packagesdjangodbbackendsmysqlbase.py",line 86,in execute return self.cursor.execute(query,args)
  File "C:UsersmeAppDataRoamingPythonPython27site-packagesMySQLdbcursors.py",line 174,in execute self.errorhandler(self,exc,value)
  File "C:UsersmeAppDataRoamingPythonPython27site-packagesMySQLdbconnections.py",line 36,in defaulterrorhandler raise errorclass,errorvalue

django.db.utils.IntegrityError: (1062,"Duplicate entry '9-delete_category' for key 'content_type_id'")

#models.py

from django.db import models
from django.contrib.auth.models import User

class Category(models.Model):
    title = models.CharField(max_length=80)

    class Meta:
        verbose_name_plural = "categories"
        permissions = (
            ("create_category","Can create new categories"),("edit_category","Can edit the titles of categories"),("delete_category","Can delete a category"),("merge_category","Can merge multiple categories together"),)

class Thread(models.Model):
    creation_date       = models.DateTimeField()
    author              = models.ForeignKey(User)
    title               = models.CharField(max_length=80)
    category            = models.ForeignKey(Category)

    class Meta:
        ordering = ["-creation_date"]
        permissions = (
            ("create_thread","Create new threads"),("edit_thread","Edit thread titles"),("delete_thread","Delete threads"),("merge_thread","Merge multiple threads together"),("lock_thread","Lock threads"),("unlock_thread","Open locked threads"),("ban_user_in_thread","Ban user from post in thread"),("timeout_user_in_thread","Ban user from posting in thread temporarily"),("appoint_threadmin","Give a user mod-like permissions in a thread"),)

class Bookmark(models.Model):
    user            = models.ForeignKey(User)
    thread          = models.ForeignKey(Thread)

class Subscription(models.Model):
    user            = models.ForeignKey(User)
    thread          = models.ForeignKey(Thread)

class Post(models.Model):
    creation_date   = models.DateTimeField()
    author          = models.ForeignKey(User)
    thread          = models.ForeignKey(Thread)
    content         = models.TextField()

    class Meta:
        ordering = ["creation_date"]
        permissions = (
            ("create_post","Can create new post"),("edit_post","Can edit all users' posts"),("delete_post","Can delete posts"),)

+----------------------------+
| Tables_in_mydb             |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_message               |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| django_site                |
| forum_bookmark             |
| forum_category             |
| forum_post                 |
| forum_subscription         |
| forum_thread               |
+----------------------------+

mysql> select * from django_content_type;
+----+--------------+--------------+--------------+
| id | name         | app_label    | model        |
+----+--------------+--------------+--------------+
|  1 | permission   | auth         | permission   |
|  2 | group        | auth         | group        |
|  3 | user         | auth         | user         |
|  4 | message      | auth         | message      |
|  5 | content type | contenttypes | contenttype  |
|  6 | session      | sessions     | session      |
|  7 | site         | sites        | site         |
|  8 | log entry    | admin        | logentry     |
|  9 | category     | forum        | category     |
| 10 | thread       | forum        | thread       |
| 11 | bookmark     | forum        | bookmark     |
| 12 | subscription | forum        | subscription |
| 13 | post         | forum        | post         |
+----+--------------+--------------+--------------+

解决方法

Django每个模型自动 creates few default permissions,这些是:添加,删除和更改.您正在尝试使用相同名称创建权限,从而获得完整性错误.只需删除元描述中的删除_ ***,一切都应该没问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读