Вы игнорируете функциональность, подобную __setattr__
, которую метакласс моделей (type(type(source))
) обычно использует для правильной работы с настройкой атрибутов. Измените свой внутренний цикл на:
for property in self.request.arguments():
if property != 'id':
setattr(source, property, self.request.get(property))
и все должно работать (если все типы свойств могут быть правильно установлены из строки, так как это то, что вы получите от request.get
).