我想在SQLAlchemy(python)中运行筛选器查询,并且遇到列名称中区分大小写的问题。在SQLAlchemy筛选器中引用区分大小写的列名
模型类是从架构自动生成的,像这样:
Base = declarative_base()
engine = create_engine('postgresql://user:[email protected]: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) column "mycasesensitiveattribute" does not exist LINE 3: WHERE myCaseSensitiveAttribute=1
其他一切正常工作与区分大小写。这只是导致问题的过滤器。有没有办法强制它引用列名称而没有明确定义模型类中的每个属性(在这种情况下不可行),或者其他一些基于变量值过滤结果集的工作方法?
谢谢你的时间!
非常感谢您! – drkstr1