有没有办法在django中执行以下操作?
Catalog.objects.all()[:10000].delete()
如果我一次尝试删除所有内容,它会引发TimeoutError
,如果我尝试迭代所有内容一次删除每个对象,则需要永久。
答案 0 :(得分:0)
也许你想要这样的东西:
batch_size = 10000
max_id = Catalog.objects.order_by('-id')[0].id
for start in range(0, max_id, batch_size):
end = min(start + batch_size, max_id)
Catalog.objects.filter(pk__gte=start, pk__lte=end).delete()