如何防止Django灯具与现有数据冲突

时间:2013-05-30 01:55:20

标签: python django

我正在尝试manage.py loaddata myfixture.json故意批量覆盖数据库中的多条记录。但是,它给了我错误:

IntegrityError: Problem installing fixture 'myfixture.json': Could not load myapp.Person(pk=1): (1062, "Duplicate entry 'Bob' for key 'name'")

我认为如果主键与现有记录匹配,loaddata的行为是覆盖记录吗?我错了,还是在Django 1.5中改变了?如何让它覆盖?

2 个答案:

答案 0 :(得分:4)

我找到了一种方法来修改Django的loaddata命令,以便在加载时正确解析自然键,并避免重新加载重复项。修改后的命令已发布here。官方加载数据之间的唯一区别是189-201行。

答案 1 :(得分:1)

也许如果您创建一个命令并从中调用修复程序,您可以处理这种情况。

在我看来,灯具用于静态数据。