IntegrityError: (1062, Double entrée pour la clé)

J'ai essayé de purger ma base de données, mydb, et remplit à nouveau pour voir les effets de certains changements à mon Django modèle. Ensuite tout ce qui s'est passé. J'ai roulé en arrière à mon modèle précédent, mais je encore les erreurs.

Je ne suis pas MySQL pro, et je n'arrive pas à comprendre le problème et quoi faire à ce sujet; j'ai essayé de créer une nouvelle base de données avec un autre nom, mais qui n'est pas arrivé. Je suppose que c'est un problème créé par mon projet Django.

Voici toutes les infos:

 
C:\Users...>python manage.py syncdb 
La création de tables ... 
Création de la table auth_permission 
Création de la table auth_group_permissions 
Création de la table auth_group 
Création de la table auth_user_user_permissions 
Création de la table auth_user_groups 
Création de la table auth_user 
Création de la table auth_message 
Création de la table django_content_type 
Création de la table django_session 
Création de la table django_site 
Création de la table django_admin_log 
Création de la table forum_category 
Création de la table forum_thread 

Création de la table forum_post 

Vous venez d'installer Django auth du système, ce qui signifie que vous n'avez pas tout les superutilisateurs défini. 
Vous souhaitez en créer un maintenant? (oui/non): oui 
Nom d'utilisateur (Laisser vide pour utiliser le 'moi'): admin 
E-mail: [email protected] 
Mot de passe: 
Mot de passe (encore une fois): 
Super-utilisateur créé avec succès. 
Traceback (most recent call last): 
Fichier "manage.py", la ligne 14, en 
execute_manager(paramètres) 
Fichier "C:\Python27\lib\site-packages\django\core\management\__init__.py", la ligne 438, execute_manager utilitaire.execute() 
Fichier "C:\Python27\lib\site-packages\django\core\management\__init__.py" de ligne, 379, en exécution de soi.fetch_command(sous-commande).run_from_argv(de soi.argv) 
Fichier "C:\Python27\lib\site-packages\django\core\management\base.py" de ligne, 191, dans run_from_argv auto.execute(*args, **options.__dict__) 
Fichier "C:\Python27\lib\site-packages\django\core\management\base.py", de la ligne 220, en exécution de sortie = auto.la poignée(*args, **options) 
Fichier "C:\Python27\lib\site-packages\django\core\management\base.py", la ligne 351, dans la poignée de retour auto.handle_noargs(**options) 
Fichier "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py", à la ligne 109, dans handle_noargs emit_post_sync_signal(created_models, le niveau de verbosité, interactif, db) 
Fichier "C:\Python27\lib\site-packages\django\core\management\sql.py", la ligne 190, dans emit_post_sync_signal interactive=interactif, db=db) 
Fichier "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py", la ligne 172, envoyer une réponse à l' = récepteur(signal=auto, expéditeur=expéditeur, **nommé) 
Fichier "C:\Python27\lib\site-packages\django\contrib\auth\management\__init__.p ", ligne 51, dans create_permissions content_type=ctype 
Fichier "C:\Python27\lib\site-packages\django\db\models\manager.py", la ligne 138, dans la création d'un retour de l'auto.get_query_set().créer(**kwargs) 
Fichier "C:\Python27\lib\site-packages\django\db\models\query.py", ligne 360, en créer obj.enregistrer(force_insert=True, l'utilisation de=auto.db) 
Fichier "C:\Python27\lib\site-packages\django\db\models\base.py", la ligne 460, la sauvegarde auto.save_base(à l'aide d'=aide, force_insert=force_insert, force_update=force_up 
date) 
Fichier "C:\Python27\lib\site-packages\django\db\models\base.py" de ligne, 553, dans save_base résultat = manager._insert(valeurs, return_id=update_pk, à l'aide de=aide) 
Fichier "C:\Python27\lib\site-packages\django\db\models\manager.py" de ligne, 195, dans _insert retour insert_query(de soi.modèle, des valeurs, **kwargs) 
Fichier "C:\Python27\lib\site-packages\django\db\models\query.py", de la ligne de 1436, dans insert_query de la requête de retour.get_compiler(aide=).execute_sql(return_id) 
Fichier "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py" de ligne, 791, dans execute_sql curseur = super(SQLInsertCompiler, auto).execute_sql(Aucun) 
Fichier "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", de la ligne à 735, dans execute_sql curseur.execute(sql, params) 
Fichier "C:\Python27\lib\site-packages\django\db\backends\util.py", à la ligne 34, en exécution de retour auto.le curseur.execute(sql, params) 
Fichier "C:\Python27\lib\site-packages\django\db\backends\mysql\base.py", à la ligne 86, en exécution de retour auto.le curseur.execute(requête, args) 
Fichier "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\MySQLdb\cursors.py", ligne 174, à exécuter soi-même.errorhandler(auto, exc, valeur) 
Fichier "C:\Users\me\AppData\Roaming\Python\Python27\site-packages\MySQLdb\connections.py", à la ligne 36, dans defaulterrorhandler élever errorclass, errorvalue 

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

#models.py 

de django.db importer des modèles 
de django.contrib.auth.importation de modèles de l'Utilisateur 

Catégorie(les modèles.Modèle): 
title = modèles.CharField(max_length=80) 

classe Meta: 
verbose_name_plural = "catégories" 
les autorisations = ( 
("create_category", "Peut créer de nouvelles catégories"), 
("edit_category", "Pouvez modifier les titres des catégories"), 
("delete_category", "vous Pouvez supprimer une catégorie"), 
("merge_category", "Pouvez fusionner plusieurs catégories ensemble"), 
) 

la classe Thread(les modèles.Modèle): 
creation_date = modèles.DateTimeField() 
auteur = modèles.ForeignKey(Utilisateur) 
title = modèles.CharField(max_length=80) 
category = modèles.ForeignKey(Catégorie) 

classe Meta: 
la commande = ["-creation_date"] 
les autorisations = ( 
("create_thread", "Créer de nouveaux threads"), 
("edit_thread", "Modifier les titres de fil"), 
("delete_thread", "Supprimer les discussions"), 
("merge_thread", "Fusionner plusieurs threads"), 
("lock_thread", "les fils de la mèche"), 
("unlock_thread", "Ouvrir verrouillé threads"), 
("ban_user_in_thread", "Interdiction de l'utilisateur de poster dans le thread"), 
("timeout_user_in_thread", "Interdiction de l'utilisateur de poster dans le thread temporairement"), 
("appoint_threadmin", "fournir à l'utilisateur un mod comme des autorisations dans un fil"), 
) 

classe Signet(les modèles.Modèle): 
utilisateur = modèles.ForeignKey(Utilisateur) 
thread = modèles.ForeignKey(Thread) 

classe de Souscription(les modèles.Modèle): 
utilisateur = modèles.ForeignKey(Utilisateur) 
thread = modèles.ForeignKey(Thread) 

Post de classe(les modèles.Modèle): 
creation_date = modèles.DateTimeField() 
auteur = modèles.ForeignKey(Utilisateur) 
thread = modèles.ForeignKey(Thread) 
contenu = modèles.TextField() 

classe Meta: 
la commande = ["creation_date"] 
les autorisations = ( 
("create_post", "Peut créer un nouveau post"), 
("edit_post", "Pouvez modifier tous les utilisateurs de "posts"), 
("delete_post", "vous Pouvez supprimer des postes"), 
) 

+----------------------------+ 
| 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 | nom | app_label | modèle | 
+----+--------------+--------------+--------------+ 
| 1 | autorisation | auth | permission | 
| 2 | groupe | auth | groupe | 
| 3 | user | auth | utilisateur | 
| 4 | message | auth | message | 
| 5 | type de contenu | contenttypes | contenttype | 
| 6 | session | sessions | session | 
| 7 | site | les sites | site | 
| 8 | entrée de journal | admin | logentry | 
| 9 | catégorie | forum | categorie | 
| 10 | thread | forum | thread | 
| 11 | signet | forum | signet | 
| 12 | abonnement | forum | abonnement | 
| 13 | post | forum | post | 
+----+--------------+--------------+--------------+ 
Cela ressemble à une clé étrangère de la vérification a échoué. Où est content_type_id être utilisé comme une clé étrangère?
Vous pouvez modifier C:\Python27\lib\site-packages\django\db\backends\mysql\base.py avant la ligne 86, ajoutant print query % args, puis exécutez de nouveau syncdb pour voir exactement quelles requêtes sont exécutées avant qu'il tombe en panne. '9-delete_category valeur n'est certainement pas à regarder à droite pour un 'content_type_id' champ.

OriginalL'auteur Kiwi | 2011-09-06