gpt4 book ai didi

python - 从 sqlalchemy query.filter 返回的 Basequery 对象而不是模型对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:47 25 4
gpt4 key购买 nike

我的 flask 代码中有两行进行数据库调用。这一行:

articles += Entries.query.filter(and_(Entries.id == article.article_id, Entries.tags.like(search_string))) # @UndefinedVariable

返回一个 Models.Entries 对象。

而这一行:

articles.append(Entries.query.filter(Entries.id == 3)) # @UndefinedVariable

返回一个 Basequery 对象。我需要一个 Models.Entries 对象!可能发生了什么?

最佳答案

假设 articles 是一个列表,添加到列表基本上等同于 articles.extend(other_iterable)Query 是可迭代的:迭代它,返回结果。

在第二个示例中,您没有执行查询,而是将其附加到列表中。 += 的等效代码将使用 extend,而不是 append:

articles.extend(Entries.query.filter_by(id=3))

看起来您正在按 ID 查询单个项目。与其执行多个查询并收集结果,不如对一组 ID 执行一个查询并直接获取结果。

articles = Entries.query.filter(Entries.id.in_([1, 2, 3, 4])).all()

关于python - 从 sqlalchemy query.filter 返回的 Basequery 对象而不是模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33814340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com