私は、更新したいORMマップオブジェクトを持っています。私はすべての属性を辞書で検証して保護しています(キーワード引数)。今、辞書のようにすべてのオブジェクトの属性を更新したいと思います。SA ORMオブジェクトの属性を一括割り当てする方法はありますか?
for k,v in kw.items():
setattr(myobject, k, v)
SQLAlchemyからスローされました(AttributeError Exception)。
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'
は、あなたの辞書Unicodeオブジェクト内のキーであり、あなたが実行していますPython 2.xで?もしそうなら、unicodeでsetattrを使うのはあまり幸せでないかもしれません。チェックするだけのもの。 –