pony.orm.core.TransactionError: An attempt to mix objects belonging to different transactions
我知道这个错误是描述性的,我只是无法弄清楚它为什么会发生。我搜索了谷歌,文档,其他SO帖子,一无所获。
有什么想法吗?
答案 0 :(得分:3)
如果有人试图链接属于两个不同数据库会话的身份映射的两个对象,则会出现此错误:
from pony.orm.examples.university1 import *
populate_database()
with db_session:
g = Group[101]
with db_session:
s = Student[4]
s.group = g # or g.students.add(s)
每个数据库会话都应该只使用在此数据库会话中检索的对象。如果需要在db会话之间存储某些信息,则可以存储对象的id
值而不是对象本身。您也可以在一个db_session
中挑选对象,然后在另一个db_session
中取消对象。