У меня есть сопоставленный объект ORM, который я хочу обновить. У меня есть все атрибуты проверены и защищены в словаре (ключевые слова аргументы). Теперь я хотел бы обновить все атрибуты объекта, как в словаре.
for k,v in kw.items():
setattr(myobject, k, v)
не работает (исключение AttributeError), выбрасывается из SQLAlchemy.
myobject.attr1 = kw['attr1']
myobject.attr2 = kw['attr2']
myobject.attr3 = kw['attr3']
и т. Д. Это ужасный код копировать-вставить, я хочу этого избежать. #
Как мне этого добиться? SQLAlchemy уже делает что-то похожее на то, что я хочу сделать в их конструкторах (myobject = MyClass (** kw)), но я не могу найти этого во всех запутанных дерьме метапрограммирования.
ошибка от SA:
<< if self.trackparent:
if value is not None:
self.sethasparent(instance_state(value), True)
if previous is not value and previous is not None:
self.sethasparent(instance_state(previous), False)
>> self.sethasparent(instance_state(value), True)
AttributeError: 'unicode' object has no attribute '_sa_instance_state'