Python 使用SQLAlchemy ORM(0.8)搜索HSTORE列的正确语法是什么?
我正在使用带有我的分机的烧瓶 我正在尝试搜索所有具有具有特定值的hstore密钥的记录 以下是该列的设置:Python 使用SQLAlchemy ORM(0.8)搜索HSTORE列的正确语法是什么?,python,sqlalchemy,flask,flask-sqlalchemy,hstore,Python,Sqlalchemy,Flask,Flask Sqlalchemy,Hstore,我正在使用带有我的分机的烧瓶 我正在尝试搜索所有具有具有特定值的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): attrib
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()的语法是什么?
filter_by
只是比较简单字段相等性时的一个方便快捷方式。它只接受关键字参数,因此只接受有效的Python名称。在这种情况下,使用过滤器
是正确的