когда flag_modified необходимо после установки значения атрибута в SQLAlchemy? - PullRequest
0 голосов
/ 21 апреля 2019

Я наткнулся на некоторый код, который использует 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».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...