2016-10-22 3 views
4

Je suis en cours d'exécution avec une base de données vide (User et UserProfile tables sont créées mais non peuplées), cependant, je reçois l'erreur suivante:Django contrainte unique n'a pas

django.db.utils.IntegrityError: Problem installing fixture 'path/to/mydata.json': Could not load myapp.UserProfile(pk=1): UNIQUE constraint failed: myapp_userprofile.user_id 

J'ai vérifié (même après avoir exécuté cette commande) et la base de données n'est pas remplie du tout. Alors, comment peut-il être une erreur que le PK n'est pas unique?

Le cas échéant, UserProfile étend simplement le modèle par défaut User avec une relation OneToOneField, tel que proposé here.

Voici ce que mydata.json contient:

[ 
    { 
     "model": "auth.user", 
     "pk": 1, 
     "fields": { 
      "password": "pbkdf2_sha256..", 
      "last_login": "2016-10-22T15:19:46.926Z", 
      "is_superuser": true, 
      "username": "thesuperuser", 
      "first_name": "", 
      "last_name": "", 
      "email": "[email protected]", 
      "is_staff": true, 
      "is_active": true, 
      "date_joined": "2016-10-22T14:48:27.394Z", 
      "groups": [], 
      "user_permissions": [] 
     } 
    }, 
    { 
     "model": "auth.user", 
     "pk": 2, 
     "fields": { 
      "password": "pbkdf2_sha256..", 
      "last_login": null, 
      "is_superuser": false, 
      "username": "user1", 
      "first_name": "User", 
      "last_name": "One", 
      "email": "", 
      "is_staff": false, 
      "is_active": true, 
      "date_joined": "2016-10-22T15:20:32Z", 
      "groups": [], 
      "user_permissions": [] 
     } 
    }, 
    { 
     "model": "auth.user", 
     "pk": 4, 
     "fields": { 
      "password": "pbkdf2_sha256..", 
      "last_login": null, 
      "is_superuser": false, 
      "username": "user3", 
      "first_name": "User", 
      "last_name": "Three", 
      "email": "", 
      "is_staff": false, 
      "is_active": true, 
      "date_joined": "2016-10-22T15:21:09Z", 
      "groups": [], 
      "user_permissions": [] 
     } 
    }, 
    { 
     "model": "auth.user", 
     "pk": 3, 
     "fields": { 
      "password": "pbkdf2_sha256..", 
      "last_login": null, 
      "is_superuser": false, 
      "username": "user2", 
      "first_name": "User", 
      "last_name": "Two", 
      "email": "", 
      "is_staff": false, 
      "is_active": true, 
      "date_joined": "2016-10-22T15:21:03Z", 
      "groups": [], 
      "user_permissions": [] 
     } 
    }, 
    { 
     "model": "myapp.userprofile", 
     "pk": 1, 
     "fields": { 
      "user": 1, 
      "money": 100 
     } 
    }, 
    { 
     "model": "myapp.userprofile", 
     "pk": 2, 
     "fields": { 
      "user": 2, 
      "money": 100 
     } 
    }, 
    { 
     "model": "myapp.userprofile", 
     "pk": 3, 
     "fields": { 
      "user": 3, 
      "money": 100 
     } 
    }, 
    { 
     "model": "myapp.userprofile", 
     "pk": 4, 
     "fields": { 
      "user": 4, 
      "money": 100 
     } 
    } 
] 

Merci pour toute aide,

Répondre

0

J'ai eu un problème similaire. Inspiré par ce poste:

https://github.com/yourlabs/django-cities-light/issues/89 (voir « comment y remédier »)

avant d'exécuter la commande loaddata, je commente le décorateur de signal de récepteur avant la « fonction d'économie », et cela a fonctionné.