2017-06-22 31 views
0

比方说,有一个与唯一约束模型:散装与唯一性约束创建 - 忽略重复

class A(models.Model): 
    my_unique_value = models.CharField(unique=True) 

我想bulk_create但一些my_unique_value值我插入的是已经在分贝。我希望他们被忽略(未插入)。

什么是最好的,最有效的方法来实现呢?我不能逐个插入它们,并捕获异常(它太慢)。我也无法取得所有的首先清理重复。

底层DB是postgres。

+0

你可以粘贴视图吗? –

+0

重复的https://stackoverflow.com/questions/12451053/django-bulk-create-with-ignore-rows-that-c​​ause-integrityerror – shubham003

回答

1

您可以使用get_or_create,正如其名称所示 - 只会在物品不存在时才会创建,否则会将其取出。您可以放弃提取的项目。

+0

这将不再是*批量*创建(它会使一个查询每目的)。 – Matt

+0

是的,但考虑到你的限制[一]无法获取和过滤[b]不想复制,这是最好的选择。 –