django 事务

https://yiyibooks.cn/xx/Django_1.11.6/topics/db/transactions.html#autocommit-details

from django.db import transaction

@transaction.atomic
def add_book(request):
    sid = transaction.savepoint()
    try:
        Book.objects.filter(pk=1).exclude(title="tt").update(publish_id=3, guige_id=1)
        t = Book.objects.filter(pk=1).exclude(title__in=["tt", "ttt"]).update(publish_id=3, guige_id=1)
        if t == 0:
            # 两次数据库操作均回滚
            transaction.savepoint_rollback(sid)
            return HttpResponse("ok1")
        return HttpResponse("ok2")
    except Exception as e:
        print(e)
        # 两次数据库操作均回滚
        transaction.savepoint_rollback(sid)
        return HttpResponse("ok3")

猜你喜欢

转载自blog.csdn.net/weixin_40744265/article/details/89497402