コードは次のように非常に単純です。
from pony.orm import Required, Set, Optional, PrimaryKey
from pony.orm import Database, db_session
import time
db = Database('mysql', host="localhost", port=3306, user="root",
passwd="123456", db="learn_pony")
class TryUpdate(db.Entity):
_table_ = "try_update_record"
t = Required(int, default=0)
db.generate_mapping(create_tables=True)
@db_session
def insert_record():
new_t = TryUpdate()
@db_session
def update():
t = TryUpdate.get(id=1)
print t.t
t.t = 0
print t.t
if __name__ == "__main__":
insert_record()
update()
pony.orm レポートの例外: pony.orm.core.CommitException: オブジェクト TryUpdate[1] が現在のトランザクションの外部で更新されました。しかし、他のトランザクションはまったく実行されていません
そして、私の実験が示すように、ポニーは tt が元の値と異なる値に変更されている限り問題なく動作しますが、tt が元の値と等しい値に設定されている場合は常に例外を報告します。
これが設計上の決定かどうかはわかりません。割り当ての前に入力値が毎回変更されるかどうかを確認する必要がありますか? または、この迷惑な例外を回避するためにできることはありますか?
私のポニーのバージョン: 0.4.8
どうもありがとう~~~