python - Django loaddata UNIQUE 约束失败

标签 python json unique loaddata

我正在运行 python manage.py loaddata 'path/to/mydata.json' 使用空数据库(UserUserProfile表已创建但未填充),但是,我收到以下错误:

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

我检查过(甚至在运行这个命令之后),数据库根本没有填充。那么它怎么会给出 pk 不是唯一的错误呢?

如果相关,UserProfile 只是使用 OneToOneField 关系扩展默认的 User 模型,如建议的那样 here .

这是 mydata.json 包含的内容:

[
    {
        "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": "a@a.co",
            "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
        }
    }
]

感谢您的帮助,

最佳答案

创建数据库转储时排除 ContentType 和 Auth Permissions 对象。

python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e auth.Permission --indent 2 > dump.json

之后你应该能够毫无问题地运行命令

python manage.py loaddata dump.json

归功于 https://www.coderedcorp.com/blog/how-to-dump-your-django-database-and-load-it-into-/ 拯救我的一天

关于python - Django loaddata UNIQUE 约束失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193992/

相关文章:

javascript - jquery jsonp 不工作

R:查看两个简单字符串的唯一元素时的奇怪结果

Python,如何在响应中访问 unicode 变量名称

python - 将 CSV 中的大纲格式转换为两列

java - 将动态 ArrayList 转换为 Json

javascript - JQuery Unique() 函数无法正常工作

mysql - MySQL 如何处理长度有限的复合唯一索引?

python - 在 Flask 中获取信息和发布表单

python - 访问 numpy 数组中的行特定元素的向量化方式

javascript - 在递归 JavaScript 函数上使用或初始化局部变量的值