Я пытаюсь использовать транзакцию.atomic с django без удачи. Я знаю, что делаю что-то не так, но я не знаю, что.
class SnapshotView(BaseViewSet):
serializer_class = SnapshotSerializer
@transaction.atomic
def perform_create(self, serializer):
# this will call serializer.save()
snapshot = snapshot = super().perform_create(serializer)
# this will run some code can raise an exception
SnapshotServices.create_snapshot(snapshot=snapshot,
data=serializer.initial_data)
первый метод, создающий новый снимок, пропустит второйподнимет, но все еще я могу видеть мой экземпляр снимка в БД, почему это?Я нахожусь в блоке транзакций, и что-то не получается, разве django не предполагает откат?
второй метод выбрасывает пользовательское исключение, которое я читаю, и кажется, что я все делаю правильно.