У меня есть две модели. Для простоты - модель `ModelA` и `ModelB`
class ModelA():
pass
def create_model_a(params):
# do_something
obj = ModelA(params)
obj.save()
class ModelB():
def save(self):
super(ModelB, self).save()
create_model_a(params={"id":self.id})
Я хочу, что бы если функция `create_model_a` падала, то и объект модели B не создавался. Пытаюсь обернуть в транзакцию - но не работает.
Что я делал:
1) добавлял декоратор `@transaction.atomic` к функции `save`.
2) Пытался юзать как контекстный менеджер
Как тестил:
Написал функцию, которая один раз работает правильно, а на второй запуск рейзит ошибку `django.db.IntegrityError`