我對如何處理特定情況下的交易有點困惑。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()
回滾?