【发布时间】:2014-10-07 15:44:48
【问题描述】:
我正在使用带有 sqlalchemy、pyramid_tm 和 postgresql 的金字塔来测试这个。
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
class MyList(Base):
id = Column(Integer, primary_key=True)
lst = Column(JSON)
我正在使用 postgresql 9.3+ 并使用 JSON 类型。当我这样做时
mylst = MyList(lst=[])
我也可以看到在数据库中创建了空的 [] 列表,并且
def view(request):
mylst = DBSession.query(MyList).get(1)
mylst.lst.append('45')
print(DBSession.is_active, DBSession.is_modified(mylst))
我可以在数据库中看到 ['45'],然后打印返回
True, True
在下一个请求时从上面继续[编辑](上面已经提交)
def view(request):
mylst = DBSession.query(MyList).get(1)
mylst.lst.append('65')
print(DBSession.is_active, DBSession.is_modified(mylst))
db 不会更新,它仍然是 ['45'] 并且打印返回
True, False
是我做错了什么还是这是一个错误?
【问题讨论】:
标签: python postgresql sqlalchemy pyramid