我正在查看Django网站中commit_on_success装饰器的示例,
https://docs.djangoproject.com/en/dev/topics/db/transactions/
是否应该/在视图中使用它,或者它可以与任何执行数据库事务的函数一起使用?
感谢。
答案 0 :(得分:3)
在Django 1.6中看到commit_on_success已经deprecated。您应该使用@transaction.atomic
装饰器。
答案 1 :(得分:2)
对于不是视图的函数,可以使用commit_on_success
。在我的公司,我们在许多实用程序脚本中使用它。
请确保您没有使用事务装饰器“嵌套”函数,如下例所示,否则您可能会得到您不期望的行为。
# avoid doing the following!
@transaction.commit_on_success
def my_func()
do_stuff()
@transaction.commit_on_success
def my_view()
my_func()