В SQLAlchemy, как метод dict update взаимодействует с ORM?

Итак, у меня была таблица SQLAlchemy со столбцом JSON:

from sqlalchemy.dialects.postgresql import JSON
class MyTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    my_json_column = db.Column(JSON)

И я попытался обновить столбец сdict#update метод вроде так:

def foo(my_object, new_params):
    my_object.my_json_column.update(new_params)
    db.session.commit()

Однако это не сработало. Редактировать:Я имел в виду, что обновления не сохранялись в базе данных.

Что сработало, было это:

def foo(my_object, new_params):
    temp_params = my_object.my_json_column.copy()
    temp_params.update(new_params)
    my_object.my_json_column = new_params
    db.session.commit()

Я подозреваю, что это как-то связано с «неизменяемостью», или ORM замечает только изменения при прямом назначении, или что-то в этом роде. Кто-нибудь знает точно, почему?

Ответы на вопрос(1)

Ваш ответ на вопрос