带有Postgres JSON列的SQLAlchemy MutableDict不会触发“set”事件

时间:2015-12-23 22:23:54

标签: python json postgresql sqlalchemy

(SQLAlchemy 1.0.11,Python 2.7)

模型中的列定义:

public_data = Column(MutableDict.as_mutable(JSON), nullable=False)

同一模型文件中的事件监听器:

def __listener(target, value, oldvalue, initiator):
    ... do some stuff

event.listen(User.public_data, 'set', __listener)

应该触发set事件的更改:

# this doesn't work
user.public_data['address'] = ''

# but this works
user.public_data = {}

仅修改JSON属性时,永远不会触发事件。我逐步执行了SQLAlchemy代码,发现在执行上面的行之后,调用了模型的changed()方法,我认为该方法应该负责事件触发。我做错了还是不支持?

0 个答案:

没有答案