我正在尝试使用可变数组通过SQLAlchemy和Postgres存储数据,并编写了以下类:
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Welcome to AndroidHive", Snackbar.LENGTH_LONG);
snackbar.show();
而且我可以更新已加星标的属性,并在其中添加和弹出项目。我的问题是如何搜索在数组中具有特定项目的行。这是我的查询:
class MutableList(Mutable, list):
def append(self, value):
list.append(self, value)
self.changed()
def pop(self, index=0):
value = list.pop(self, index)
self.changed()
return value
@classmethod
def coerce(cls, key, value):
if not isinstance(value, MutableList):
if isinstance(value, list):
return MutableList(value)
return Mutable.coerce(key, value)
else:
return value
class Lead(db.Model):
__tablename__ = 'leads'
...
starred = db.Column(MutableList.as_mutable(db.ARRAY(db.Integer)))
但这给了我以下错误:leads = Lead.query.order_by(Lead.post_date.desc()).filter(Lead.starred.contains(current_user.id)).all()
我在这里想念什么?
答案 0 :(得分:1)
似乎db.ARRAY
是SQL标准/多厂商数组类型sqlalchemy.types.ARRAY
。相反,您应该使用方言特定类型(如错误中所述)sqlalchemy.dialects.postgresql.ARRAY
。简而言之:
from sqlalchemy.dialects.postgresql import ARRAY
并使用它。