作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 SQLAlchemy 声明性基础来定义我的模型。我定义了一个属性 name
,它是从一列 (title
) 计算得出的:
class Entry(Base):
__tablename__ = "blog_entry"
id = Column(Integer, primary_key=True)
title = Column(Unicode(255))
...
@property
def name(self):
return re.sub(r'[^a-zA-Z0-9 ]','',self.title).replace(' ','-').lower()
当尝试使用 name
执行查询时,SQLAlchemy 抛出错误:
Session.query(Entry).filter(Entry.name == my_name).first()
>>> ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement or string
调查了一段时间后,我发现也许 comparable_using()
可以提供帮助,但我找不到任何显示引用表另一列的比较器的示例。
这是否可能或是否有更好的方法?
最佳答案
从 SqlAlchemy 0.7 开始,您可以使用 hybrid_property 实现此目的请在此处查看文档:http://www.sqlalchemy.org/docs/orm/extensions/hybrid.html
关于python - SQLAlchemy:根据表字段查询自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738259/
我是一名优秀的程序员,十分优秀!