解决 SQLAlchemy 'is already present in this session' 错误
在使用 SQLAlchemy 时,你可能会遇到 'db.session.add(chongming_max) 提示 is already present in this session' 的错误。这个错误提示意味着你尝试将一个已经存在于当前会话中的对象再次添加到会话中。
解决这个问题的方法有两种:
- 检查对象是否已经存在于会话中:在调用
db.session.add(chongming_max)之前,可以使用db.session.query(Model).get(id)方法检查对象是否已经存在于会话中。如果对象存在,则无需再次添加到会话中。
existing_obj = db.session.query(Model).get(chongming_max.id)
if existing_obj is None:
db.session.add(chongming_max)
- 使用
db.session.merge(chongming_max):merge()方法会检查对象是否已经存在于会话中,如果存在则会更新对象,如果不存在则会添加对象到会话中。
db.session.merge(chongming_max)
选择哪种方法取决于你的具体需求和代码结构。
原文地址: https://www.cveoy.top/t/topic/pV55 著作权归作者所有。请勿转载和采集!