Ich habe ein ORM zugeordnetes Objekt, das ich aktualisieren möchte. Ich habe alle Attribute validiert und gesichert in einem Wörterbuch (Schlüsselwortargumente). Jetzt möchte ich alle Objektattribute wie im Wörterbuch aktualisieren.Wie kann ich SA ORM-Objektattribute massenweise zuweisen?
funktioniert nicht (AttributeError Exception), von SQLAlchemy geworfen.
myobject.attr1 = kw['attr1']
myobject.attr2 = kw['attr2']
myobject.attr3 = kw['attr3']
etc ist schrecklich kopieren und einfügen Code, möchte ich das vermeiden. #
Wie kann ich das erreichen? SQLAlchemy macht schon etwas, was ich in ihren Konstruktoren machen möchte (myobject = MyClass (** kw)), aber ich kann nicht finden, dass in allen Metaprogrammen Mist drin ist.
Fehler von 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'
die Schlüssel in Ihrem Wörterbuch Unicode-Objekte sind, und Sie laufen auf Python 2.x? Wenn das der Fall ist, ist setattr mit Unicode vielleicht nicht allzu glücklich. Nur etwas zu überprüfen. –