sqlalchemy.exc.InvalidRequestError: Could not evaluate current criteria in Python: "Cannot evaluate Select". Specify 'fetch' or False for the synchronize_session parameter.
时间: 2023-11-27 19:52:23 浏览: 271
这个错误通常表示您在使用 SQLAlchemy 进行查询时,没有正确设置 synchronize_session 参数。该参数用于指定在更新查询结果时如何同步会话中的状态。默认情况下,该参数为 True,表示查询结果中包含的所有对象都将与会话同步,但在某些情况下,这可能会导致错误。
要解决这个问题,您可以尝试将 synchronize_session 参数设置为 False 或 'fetch',以避免同步会话状态。例如:
```
session.query(MyModel).filter_by(id=1).delete(synchronize_session=False)
```
或者:
```
session.query(MyModel).filter_by(id=1).delete(synchronize_session='fetch')
```
如果您需要在执行删除操作后立即访问被删除的对象,则可以使用 synchronize_session='evaluate',它将在删除之前对查询进行评估,以确保查询结果包含要删除的对象。但是请注意,这可能会导致性能问题。
```
session.query(MyModel).filter_by(id=1).delete(synchronize_session='evaluate')
```
阅读全文