Python 如何加载Django JSON以避免与自然键冲突
我有一个JSON文件sample.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应用程序中,我希望它在不存在的情况下创
[
{
"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加载数据以更新或扩充用户列表,那么最好实现您想要的语义 您可以查看的答案,以了解有关如何继续的更多想法