Я наткнулся на некоторый код, который использует SQLAlchemy и который мне нужно поддерживать. Это делает следующее:
model1.model2.jsoncolumn['specific_entry_in_json'] = True
flag_modified(model1.model2, "jsoncolumn")
Из заставить объект быть "грязным" в sqlalchemy Я узнал, что flag_modified
используется, когда SQLAlchemy может не заметить, что атрибут был изменен. Это заставляет SQLAlchemy считать атрибут изменяемым, чтобы он был сброшен в БД.
Мне интересно, каковы общие правила, когда нужно использовать flag_modified ()?
Если бы мне пришлось угадывать, в этом случае это было необходимо, поскольку столбец JSON представлен в Python как изменяемый объект (dict), который можно изменить, не обращаясь к установщикам / получателям, которые создает SQLAlchemy, которые обычно обнаруживают изменения атрибутов. , Это правильно? Было бы здорово узнать конкретные правила, когда мне нужно использовать flag_modified()
, например, например, «когда у вас есть столбец JSON».