【发布时间】:2016-10-08 22:05:24
【问题描述】:
我搜索了这个,似乎没有真正好的解决方案(大多数答案都是多年前的)。对于需要唯一的 bulk_creating 对象有什么新的好解决方案吗?
好的,所以我的列表包含约 1000 个字典和字典 ['keyword'] 的唯一约束。到目前为止,我一直是这样做的:
self.get_existing_KeyO = \
list(KeyO.objects.filter(keyword__in=[x['keyword'] for x in self.data]).all())
然后我 bulk_create 那些不在数据库中的。我正在使用 django 1.10(因为我需要创建对象的 ID)
我正在使用 celery(多个线程)执行此操作,因此存在冲突(两个线程同时添加到数据库)。 get_or_create 可以更有效吗?我有点担心它会导致数据库崩溃,因为有时我会同时添加 5-10 个列表,这会导致大约 10 000 个查询。
【问题讨论】:
标签: django