SQLAlchemy表创建不区分大小写的列

时间:2018-10-09 19:58:05

标签: python sqlalchemy

我正在尝试使用不区分大小写的特定列创建一个SQLAlchemy表。我已经从This is the error I am getting while connection阅读了Dologan的解决方案。但是考虑到从版本开始的更新(我的当前版本是1.0.11),我希望可能有一个内置的参数来使条目区分大小写。

class Bob(Base, ...):
    __tablename__ = "Alice"
    steve = Column(String, nullable=False, *case-insensitive parameter*?)

1 个答案:

答案 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())