当我试图获得下一个查询时:
answer = sess.query(User).filter(User.id==1).get(1)
我收到错误:sqlalchemy.exc.InvalidRequestError: Query.get() being called on a Query with existing criterion.
查询:
answer = sess.query(User).get(1)
工作正常。
为什么第一个不起作用?
我的班级定义:
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
adr = relationship('Address', backref='uuu')
答案 0 :(得分:3)
来自Query.get
的文档:
get()
仅用于返回单个映射实例,而不是多个实例或单个列构造,并且仅用于返回单个主键值。原始查询必须以这种方式构建,即针对单个映射实体,,没有其他过滤标准。但是,可以应用通过options()加载选项,并且如果对象尚未在本地存在,则将使用该选项。