代码非常简单,如下所示:
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()
Run Code Online (Sandbox Code Playgroud)
pony.orm报告异常:pony.orm.core.CommitException:对象TryUpdate [1]在当前事务之外更新.但是根本没有其他交易在运行
正如我的实验所示,只要tt更改为与原始值不同的值,pony就可以正常工作,但是当tt设置为等于原始值的值时,它总是会报告异常.
我不确定这是否是一个设计决定.在分配之前,我是否必须检查输入值是否每次都在变化?或者我有什么办法可以避免这个烦人的异常?
我的小马版:0.4.8
Thansk很多~~~