The*_*rer 13 django django-models
在我看来,我在多个模型中保存数据:
def myview(request):
#do some processing
model1.save()
model2.save()
Run Code Online (Sandbox Code Playgroud)
如何确保存在回滚model1.save()以防model2.save()出现错误.或者只有在两个模型都成功保存后才能提交?
换句话说,"如果save()都成功,则只保存model1和model2"
Lei*_*all 29
使用原子事务:
原子性是数据库事务的定义属性.atomic允许我们创建一个代码块,在该代码块中保证数据库的原子性.如果成功完成了代码块,则会将更改提交到数据库.如果存在异常,则回滚更改.
例子:
from django.db import transaction
with transaction.atomic():
model1.save()
model2.save()
Run Code Online (Sandbox Code Playgroud)
和
from django.db import transaction
try:
with transaction.atomic():
model1.save()
model2.save()
except IntegrityError:
handle_exception()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6713 次 |
| 最近记录: |