sqlalchemy.exc.InvalidRequestError: 无法将一个已存在于此会话中的实体实例附加多个实例具有相同的键

2024-09-29 01:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

这里我有个错误,我找不到解决办法。请原谅我代码的质量,我直到6个月前才开始上课。我试过用清除来分离分类对象,但是一旦添加了它就不起作用了。我在想当用清除来分离对象时,它会起作用的。我找不到解决办法:(。我粘贴了尽可能多的代码以便你能看到

    Traceback (most recent call last):
  File "/home/scwall/PycharmProjects/purebeurre/recovery.py", line 171, in <module>
    connection.connect.add(article)
  File "/home/scwall/PycharmProjects/purebeurre/venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1776, in add
    self._save_or_update_state(state)
  File "/home/scwall/PycharmProjects/purebeurre/venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1796, in _save_or_update_state
    self._save_or_update_impl(st_)
  File "/home/scwall/PycharmProjects/purebeurre/venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2101, in _save_or_update_impl
    self._update_impl(state)
  File "/home/scwall/PycharmProjects/purebeurre/venv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2090, in _update_impl
    self.identity_map.add(state)
  File "/home/scwall/PycharmProjects/purebeurre/venv/lib/python3.6/site-packages/sqlalchemy/orm/identity.py", line 149, in add
    orm_util.state_str(state), state.key))
sqlalchemy.exc.InvalidRequestError: Can't attach instance <Categories at 0x7fe8d8000e48>; another instance with key (<class 'packages.databases.models.Categories'>, (26,), None) is already present in this session.

Process finished with exit code 1







class CategoriesQuery(ConnectionQuery):

@classmethod
def get_categories_by_tags(cls, tags_list):
    return cls.connection.connect.query(Categories).filter(Categories.id_category.in_(tags_list)).all()

其他文件:

^{pr2}$

我收到这是一个错误信息,感谢你提前回答


Tags: inpyhomevenvsqlalchemylibpackagesline
1条回答
网友
1楼 · 发布于 2024-09-29 01:21:43

当您尝试将对象添加到会话中但该对象已加载时,会发生此错误。在

我看到您使用的唯一一行.add函数在您运行的末尾: connection.connect.add(article)

所以我猜这个模型已经加载到会话中了,你不需要再添加它了。您可以添加try,except,并在操作引发异常时回滚该操作。在

相关问题 更多 >