2012-10-29 29 views
4

我有一些我想包含在Django项目中的基础初始数据。它完全适合作为夹具,除了,我可能想拒绝重复。这意味着我可以将数据重新加载到现有安装中,只会添加不存在的对象。我可以让Django忽略非PK唯一约束上的重复装置吗?

我已经使用在同一领域自然键和外键,所以没有ID的冲突等

可能的问题吗?我不想在已经存在的情况下编写JSON导入程序,并且我的数据已经在夹具中。

回答

4

通常夹具包含模型的所有信息,其中包括主键。下面是来自Django的网站器具的example

[ 
    { 
    "model": "myapp.person", 
    "pk": 1, 
    "fields": { 
     "first_name": "John", 
     "last_name": "Lennon" 
    } 
    }, 
    { 
    "model": "myapp.person", 
    "pk": 2, 
    "fields": { 
     "first_name": "Paul", 
     "last_name": "McCartney" 
    } 
    } 
] 

正如你可以看到它有一个主键。所以,即使你有重复的灯具,只要主键是相同的,不管最新的导入灯具是什么,它都会覆盖数据库中的条目,所以你不应该在数据库中有任何重复的数据。

+1

谢谢。我希望有一种方法可以在non-pk独特的约束上做到这一点。 – Joe

+6

这并没有真正回答这个问题。我很惊讶这是被接受的答案。 –

相关问题