4
我有一些我想包含在Django項目中的基礎初始數據。它完全適合作爲夾具,除了,我可能想拒絕重複。這意味着我可以將數據重新加載到現有安裝中,只會添加不存在的對象。我可以讓Django忽略非PK唯一約束上的重複裝置嗎?
我已經使用在同一領域自然鍵和外鍵,所以沒有ID的衝突等
可能的問題嗎?我不想在已經存在的情況下編寫JSON導入程序,並且我的數據已經在夾具中。
我有一些我想包含在Django項目中的基礎初始數據。它完全適合作爲夾具,除了,我可能想拒絕重複。這意味着我可以將數據重新加載到現有安裝中,只會添加不存在的對象。我可以讓Django忽略非PK唯一約束上的重複裝置嗎?
我已經使用在同一領域自然鍵和外鍵,所以沒有ID的衝突等
可能的問題嗎?我不想在已經存在的情況下編寫JSON導入程序,並且我的數據已經在夾具中。
通常夾具包含模型的所有信息,其中包括主鍵。下面是來自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"
}
}
]
正如你可以看到它有一個主鍵。所以,即使你有重複的燈具,只要主鍵是相同的,不管最新的導入燈具是什麼,它都會覆蓋數據庫中的條目,所以你不應該在數據庫中有任何重複的數據。
謝謝。我希望有一種方法可以在non-pk獨特的約束上做到這一點。 – Joe
這並沒有真正回答這個問題。我很驚訝這是被接受的答案。 –