【发布时间】:2021-07-26 19:49:52
【问题描述】:
我确信之前已经回答了这个问题,并且我看到了一些相关的答案,但似乎没有一个是我面临的问题。我正在使用一个 SQL Alchemy 模型,该模型在下面使用一个 SQL 服务器数据库,并且我正在使用它通过会话查询数据库。正常查询等工作正常,没有错误。但是,当我只要求一个字段而不是全部时,它会给我一个错误(见下文)。 基本上归结为最简单的我有一个这样的模型:
class FactoryShop(Base):
# case insensitive, refers to the actual table in the DB called factoryshop
__tablename__ = 'factoryshop'
ID = Column(Integer, primary_key=True, autoincrement=True)
Name = Column(String(255))
Parts = Column(Integer)
Strength = Column(Integer)
Average = Column(Float)
...
使用会话我可以像这样查询所有列:
>>> session.query(FactoryShop).filter(FactoryShop.Parts==20000)
<sqlalchemy.orm.query.Query object at 0x10578c280>
但是,如果我尝试只询问下面的名称,我会收到一个很长的错误。我搜索了涉及“可选”的特定错误,但没有找到相关答案。
>>> session.query(FactoryShop.Name).filter(FactoryShop.Parts==20000)
AttributeError: Neither 'AnnotatedColumn' object nor 'Comparator' object has an attribute 'selectable'
如果已经有答案请指点我,我会删除这个。
【问题讨论】:
标签: python sql-server sqlalchemy