Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何加载Django JSON以避免与自然键冲突_Python_Django_Json - Fatal编程技术网

Python 如何加载Django JSON以避免与自然键冲突

Python 如何加载Django JSON以避免与自然键冲突,python,django,json,Python,Django,Json,我有一个JSON文件sample.JSON: [ { "pk": null, "model": "auth.user", "fields": { "username": "JoeBob" } } ] 我已经有了一个用户名为JoeBob的auth.User模型 如果我通过manage.py loaddata sample.json将其加载到Django应用程序中,我希望它在不存在的情况下创

我有一个JSON文件sample.JSON:

[
    {
        "pk": null, 
        "model": "auth.user", 
        "fields": {
            "username": "JoeBob"
        }
    }
]
我已经有了一个用户名为JoeBob的auth.User模型

如果我通过
manage.py loaddata sample.json
将其加载到Django应用程序中,我希望它在不存在的情况下创建记录,否则什么也不做。在这种情况下,它不应该做任何事情

但是,它似乎试图创建重复记录,并返回错误:

IntegrityError: Could not load auth.User(pk=None): duplicate key value violates unique constraint "auth_user_username_key"
DETAIL:  Key (username)=(JoeBob) already exists.

如何加载JSON数据,使其仅在相应的自然键不存在的情况下创建记录?据推测,Django的auth.User模型。

loaddata管理命令并不用于向现有数据库添加数据,而是用于加载夹具以进行测试或引导(),因此不能很好地处理现有数据

如果您想从JSON加载数据以更新或扩充用户列表,那么最好实现您想要的语义


您可以查看的答案以了解如何继续操作。

loaddata管理命令不用于向现有数据库添加数据,而是用于加载夹具以进行测试或引导(),因此不能很好地处理现有数据

如果您想从JSON加载数据以更新或扩充用户列表,那么最好实现您想要的语义

您可以查看的答案,以了解有关如何继续的更多想法