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

2024-04-24 03:46:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件示例.json公司名称:

[
    {
        "pk": null, 
        "model": "auth.user", 
        "fields": {
            "username": "JoeBob"
        }
    }
]

我已经有了授权用户用户名为JoeBob的模型。在

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

但是,它似乎尝试创建一个重复记录,返回错误:

^{pr2}$

如何加载JSON数据,以便它只在对应的自然键不存在的地方创建记录?据说是Django的授权用户型号does support natural keys。在


Tags: 文件django用户名称authjson示例model
1条回答
网友
1楼 · 发布于 2024-04-24 03:46:44

loaddata管理命令不用于向现有数据库添加数据,而是用于加载fixture以进行测试或引导(see the docs),因此无法很好地处理现有数据。在

如果您想从JSON加载数据来更新或扩充用户列表,最好使用实现所需语义的writing a custom management command。在

您可以查看a similar question的答案,了解如何继续操作的更多想法。在

相关问题 更多 >