flask-sqlalchemy附加到pickletype没有更新

时间:2017-12-27 20:50:21

标签: python flask sqlalchemy flask-sqlalchemy

我有以下flask-sqlalchemy表:

class Repo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    followers = db.Column(db.PickleType, nullable=False)
    created_on = db.Column(db.DateTime, default=datetime.utcnow)
    last_modified = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)

我们说我做了以下行并将其推送到数据库:

repo = Repo(
    name='My Repo',
    followers=[
        {'name': 'Johnny', 'id': 34752, 'views': 6},
        {'name': 'Mike', 'id': 69241, 'views': 3}
    ]
)
db.session.add(repo)
db.session.commit()

如果我想改变这一行,我应该能够做到以下几点;但是,数据库并没有反映出这种变化。

repo.data.append({'name': 'Jessica', 'id': 12941, 'views': 12})
print(len(repo.data))
# 3
db.session.commit()
print(len(repo.data))
# 2

我已经找到了以下解决方法,但我想知道为什么原始方法没有按预期工作。

data = list(repo.data)
data.append({'name': 'Jessica', 'id': 12941, 'views': 12})
repo.data = data
db.session.commit()
print(len(repo.data))
# 3

0 个答案:

没有答案