我正在尝试使用批量保存对象进行实验。使用Django Debug Toolbar,我可以看到运行了多少个sql查询。但是,看起来装饰器对SQL查询的数量没有影响 - 它在有或没有装饰器的情况下保持相同的数字。应该减少吗?
@transaction.commit_on_success()
def fastsave(queryset):
for t in queryset:
t.save()
def test(request):
fastsave(TimeEvent.objects.all())
return render_to_response('test.html', {})
答案 0 :(得分:3)
没有。 transaction
装饰器仅在完成查询时影响,而不会运行多少。
答案 1 :(得分:1)
您应该使用update
vs save
。请参阅此处的文档https://docs.djangoproject.com/en/dev/topics/db/queries/#updating-multiple-objects-at-once