1
從官方的Django文檔: https://docs.djangoproject.com/en/1.5/topics/db/transactions/#transaction-rollbackDjango:可能會回滾.save()調用?
a.save() # Succeeds, but may be undone by transaction rollback
try:
b.save() # Could throw exception
except IntegrityError:
transaction.rollback()
c.save() # Succeeds, but a.save() may have been undone
調用transaction.rollback()回滾整個事務。任何未提交的數據庫操作都將丟失。在這個例子中,a.save()所做的更改將會丟失,即使該操作本身沒有引發錯誤。
不保存做一個提交?那麼它不應該受到回滾的影響,還是我錯了?
(可以設置參數提交=假的.save()函數。這表明,通常保存不提交)
Django <1.6默認情況下自動提交是False。 https://docs.djangoproject.com/en/dev/topics/db/transactions/#autocommit-details。 (PS:你提到的文檔也列出了設置保存點和回滾的方法,但是你可能會讀到) – user1349663
['save()']的'commit'關鍵字參數(https:// docs .djangoproject.com/en/1.5/topics/forms/modelforms /#the-save-method)方法是指對象是否保存到數據庫中。它不影響交易是否承諾。 – Alasdair