簡體   English   中英

已捕獲,但在django transaction.atomic()塊回滾事務中除外

[英]Catched except in django transaction.atomic() block rollbacks transaction

我有這樣的代碼塊:

with transaction.atomic():
    for i in some_objects:
        stop_object(i)
    for i in some_objects:
        try:
           activate_object(i)
        except IntegrityError as e:
           pass

測試用py.test編寫。 由於某種原因,當我捕獲IntegrityError時,所有事務都將回滾,並且我具有與以前完全相同的狀態。

我確定事務僅應在未捕獲的錯誤上回滾。 我想念什么嗎?

也不確定如何調試它。 如果您有任何想法,請分享。

原來需要添加另一個transaction.atomic()塊:

with transaction.atomic():
    for i in some_objects:
        stop_object(i)
    for i in some_objects:
        try:
           with transaction.atomic():
               activate_object(i)
        except IntegrityError as e:
           pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM