我正在尝试在 SQLAlchemy (python) 中运行过滤器查询,但在列名中遇到了区分大小写的问题。
模型类是从模式自动生成的,如下所示:
Base = declarative_base()
engine = create_engine('postgresql://user:pass@localhost:5432/database')
metadata = MetaData(bind=engine)
class MyTable(Base):
__table__ = Table('my_table', metadata, autoload=True, quote=True)
这是我运行过滤器查询的方式:
val = 1
result = session.query(MyTable).filter("myCaseSensitiveAttribute=:myCaseSensitiveAttribute").params(myCaseSensitiveAttribute=val).all()
这会导致错误:
sqlalchemy.exc.ProgrammingError:(ProgrammingError)列“mycasesensitiveattribute”不存在第3行:其中myCaseSensitiveAttribute = 1
其他一切都可以区分大小写。只有过滤器会导致问题。有没有办法强制它引用列名而不显式定义模型类中的每个属性(在这种情况下不实用),或者基于变量值过滤结果集的其他一些工作方法?
谢谢你的时间!