尝试混合属于不同事务的对象

And*_*oll 4 orm ponyorm

pony.orm.core.TransactionError: An attempt to mix objects belonging to different transactions

我知道这个错误是描述性的,我只是不明白为什么会发生。我搜索了谷歌、文档、其他帖子,但什么也没找到。

有任何想法吗?

Ale*_*sky 8

如果有人尝试链接属于两个不同数据库会话的身份映射的两个对象,则会出现此错误:

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)
Run Code Online (Sandbox Code Playgroud)

每个数据库会话应仅处理在此数据库会话中检索的对象。如果您需要在数据库会话之间存储一些信息,您可以存储对象的id值而不是对象本身。您还可以在一个中腌制对象db_session,然后在另一个中取消腌制它们db_session