当我们进行多表操作时候,需要进行事务的控制,保证数据库中的数据不会出现脏数据,此时我们可以使用Django中的模块进行控制
1. 引入需要的模块
from django.db import transaction
2. 使用装饰器来定义某个视图函数具有原子性
@transaction.atomic
3. 设置可能出现错误之前设置还原点
s_id = transaction.savepoint()
4. 如果之前的操作没有问题,则提交事务
transaction.savepoint_commit(s_id)
5. 如果出错,回滚事务状态到设置还原点的地方
transaction.savepoint_rollback(s_id)