【发布时间】:2013-07-06 22:22:30
【问题描述】:
我正在使用带有 flask-sqlachemy 扩展的烧瓶。
我正在尝试搜索具有特定值的 hstore 键的所有记录。
这是该列的设置:
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import HSTORE
from sqlalchemy.ext.mutable import MutableDict
db = SQLAlchemy()
class BookDB(db.Model):
attributes = db.Column(MutableDict.as_mutable(HSTORE), nullable=False, default={ 'disabled' : '0'}, index=True)
这是我正在运行的查询:
results = BookDB.query.filter_by(attributes={ 'disabled' : '0' }).all()
这个过程没有错误,但没有找到任何结果。
如果我这样做:
results = BookDB.query.filter_by(attributes['disabled']='0').all()
我收到错误:'SyntaxError: 关键字不能是表达式'
如果我使用 filter() 而不是 filter_by(),我可以这样做
results = BookDB.query.filter(BookDB.attributes['disabled']=='0').all()
这可以正常工作并产生正确的结果。
但是它使用 filter_by() 的语法是什么?
【问题讨论】:
标签: python sqlalchemy flask flask-sqlalchemy hstore