Как commit_on_success обрабатывает вложенность ?

Я немного не понимаю, как мне следует обрабатывать транзакции в конкретной ситуации.

У меня есть код, который сводится к следующему:

from django.db import transaction

@transaction.commit_on_success
def process_post():
    #do stuff with database
    for reply in post_replies:
        process_post_reply(reply)

@transaction.commit_on_success
def process_post_reply(reply):
    #do stuff with database

Я хочу знать, что произойдет, если process_post_reply () дает сбой.

Как commit_on_success обрабатывает вложенность? Сможет ли он зафиксировать каждый process_post_reply () или, если один из них завершится неудачно, откатит весь process_post () ?

11
задан Juan Riaza 23 January 2012 в 17:45
поделиться