我正在尝试使用不区分大小写的特定列创建一个SQLAlchemy表。我已经从阅读了Dologan的解决方案。但是考虑到从版本开始的更新(我的当前版本是1.0.11),我希望可能有一个内置的参数来使条目区分大小写。
class Bob(Base, ...):
__tablename__ = "Alice"
steve = Column(String, nullable=False, *case-insensitive parameter*?)
答案 0 :(得分:0)
虽然不是直接答案,也可以解决。.(下面允许您写到steve
,但是它保存为_steve
格式为小写)
class Bob(Base, ...):
__tablename__ = "Alice"
_steve = Column(String, nullable=False)
@property . # hybrid_property for search queries?
def steve(self):
return self._steve
@steve.setter
def steve(self, value):
self._steve = value.lower()
您可以基于小写字母进行查询:
Bob.query.filter(Bob._steve == 'SomE TexT'.lower())
根据我认为在SQLalchemy文档中解释为hybrid_properties
的其他一些属性,这也可能起作用:
Bob.query.filter(Bob.steve == 'SomE TexT'.lower())