在同一个Django事务中混合raw和ORM操作?

时间:2016-05-03 11:06:03

标签: django

有可能吗?

我有一个简单的删除语句通过ORM(因为there are cascade delete Integrity Error problems when using raw sql delete)和一个复杂的更新查询通过connection.execute()。而且我想把它们都放在交易中。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。

from django.db import transaction

def viewfunc(request):
    # This code executes in autocommit mode (Django's default).
    do_stuff()

    with transaction.atomic():
        # This code executes inside a transaction.
        do_more_stuff()

来源:https://docs.djangoproject.com/en/1.9/topics/db/transactions/#django.db.transaction.atomic