【发布时间】:2020-10-30 08:30:03
【问题描述】:
我希望在 transaction.atomic 块中引发异常时更改订单状态。
下面的代码有效吗?
try:
with transaction.atomic():
order = Order.objects.create(
status='PAYING'
)
except Exception as e:
order.status = 'FALIED'
order.save()
【问题讨论】:
-
如果引发异常,可能
order尚未创建,因此您无法将其状态设置为任何内容... -
也没有理由假设如果第一次保存失败,第二次应该可以工作,但这可能是因为这个例子过于简单了。
标签: python django transactions