代码很简单,如下:
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 更改为与原始值不同的值,pony 就可以正常工作,但是当 tt 设置为等于原始值时,它总是会报告异常。
我不确定这是否是一个设计决定。我是否必须在每次分配前检查我的输入值是否更改?或者我能做些什么来避免这个恼人的异常?
我的小马版本:0.4.8
非常感谢~~~