Я немного не понимаю, как мне следует обрабатывать транзакции в конкретной ситуации.
У меня есть код, который сводится к следующему:
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 ()
?