commit_on_success django не влияет на количество SQL-запросов - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь поэкспериментировать с массовым сохранением объектов. Используя 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', {})

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Нет.Декораторы transaction влияют только на , когда запросы завершены, а не , сколько выполнено.

1 голос
/ 06 января 2012

Вы должны использовать update против save.Смотрите документы здесь https://docs.djangoproject.com/en/dev/topics/db/queries/#updating-multiple-objects-at-once

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...