我有一个 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']
etc 是可怕的复制粘贴代码,我想避免这种情况。#
我怎样才能做到这一点? 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'
最佳答案
myobject.__dict__.update(**kw)
关于python - 如何批量分配 SA ORM 对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334171/