我遇到了一些使用SQLAlchemy并需要维护的代码。它执行以下操作:
model1.model2.jsoncolumn['specific_entry_in_json'] = True
flag_modified(model1.model2, "jsoncolumn")
从force object to be `dirty` in sqlalchemy中我了解到,当SQLAlchemy可能没有注意到属性已更改时,就使用flag_modified
。强制SQLAlchemy考虑要修改的属性,以便将其刷新到数据库。
我想知道,何时必须使用flag_modified()的总体规则是什么?
如果我不得不猜测,在这种情况下是有必要的,因为JSON列在Python中表示为可变对象(dict),可以更改该对象而无需经历SQLAlchemy创建的通常会检测属性更改的设置器/获取器。 。那正确吗?知道何时需要使用flag_modified()
的特定规则,例如“何时有JSON列”,将是非常棒的。