Я пытаюсь использовать изменяемый массив для хранения данных с помощью SQLAlchemy и Postgres, и я написал эти классы:
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)))
И я могу обновить свойство starred, добавляя и извлекая из него элементы.У меня вопрос, как искать строку, в которой есть определенный элемент внутри массива.Вот мой запрос:
leads = Lead.query.order_by(Lead.post_date.desc()).filter(Lead.starred.contains(current_user.id)).all()
Но это дает мне следующую ошибку: ARRAY.contains() not implemented for the base ARRAY type; please use the dialect-specific ARRAY type
Что мне здесь не хватает?