【发布时间】:2022-01-23 11:33:24
【问题描述】:
我在transaction.atomic() 中有两个数据库调用
示例代码
with transaction.atomic():
result1, created = SomeModel.objects.get_or_create(**somedata)
if not created:
flag = SomeOtherModel.objects.filter(somemodel=result1).exists()
if flag:
result1.some_attr = value1 if flag else value2
result1.save()
关于transaction.atomic 的AFAIK 当我的python 代码不会导致异常时,因此所有数据库调用都将在数据库上提交。如果在块内引发任何异常,则不会向数据库提交任何数据库操作。
那么当在python逻辑中使用one的DB调用来进行其他DB操作时,这件事是如何处理的呢? 在文档中没有找到具体的,如果有好的来源,请提及。
【问题讨论】:
标签: mysql django transactions relational-database