Я думаю, что вам не нужны никакие две атомарные транзакции.Лучший пример использования атомарной транзакции - это перевод денег с одного счета на другой, например:
def transfer_money(source_account, destination_account, quota):
source_account.amount_of_money -= quota
source_account.save()
# K-BOOM
destination_account.amount_of_money += quota
destination_account.save()
Что произойдет, если что-то пойдет не так в момент # K-BOOM
?На одном счете будет меньше денег, а на втором НЕ будет больше, чем должно.
Вот почему вся функция transfer_money
должна быть атомарной:
@transaction.atomic
def transfer_money(source_account, destination_account, quota):
source_account.amount_of_money -= quota
source_account.save()
# K-BOOM
destination_account.amount_of_money += quota
destination_account.save()