比方說,有一個與唯一約束模型:散裝與唯一性約束創建 - 忽略重複
class A(models.Model):
my_unique_value = models.CharField(unique=True)
我想bulk_create但一些my_unique_value值我插入的是已經在分貝。我希望他們被忽略(未插入)。
什麼是最好的,最有效的方法來實現呢?我不能逐個插入它們,並捕獲異常(它太慢)。我也無法取得所有的首先清理重複。
底層DB是postgres。
比方說,有一個與唯一約束模型:散裝與唯一性約束創建 - 忽略重複
class A(models.Model):
my_unique_value = models.CharField(unique=True)
我想bulk_create但一些my_unique_value值我插入的是已經在分貝。我希望他們被忽略(未插入)。
什麼是最好的,最有效的方法來實現呢?我不能逐個插入它們,並捕獲異常(它太慢)。我也無法取得所有的首先清理重複。
底層DB是postgres。
您可以使用get_or_create
,正如其名稱所示 - 只會在物品不存在時纔會創建,否則會將其取出。您可以放棄提取的項目。
這將不再是*批量*創建(它會使一個查詢每目的)。 – Matt
是的,但考慮到你的限制[一]無法獲取和過濾[b]不想複製,這是最好的選擇。 –
你可以粘貼視圖嗎? –
重複的https://stackoverflow.com/questions/12451053/django-bulk-create-with-ignore-rows-that-cause-integrityerror – shubham003