Gibt es eine Möglichkeit, ein von sqlalchemy zugeordnetes Objekt zu erzwingen dirty
? Zum Beispiel wird der Kontext der sqlalchemy des Object Relational Tutorial das Problem gegeben demonstriert,Force-Objekt zu sein "schmutzig" in Sqlalchemy
a=session.query(User).first()
a.__dict__['name']='eh'
session.dirty
nachgebend,
IdentitySet([])
ich für eine Art und Weise suchen die Benutzer a
in einem schmutzigen Zustand zu zwingen.
Dieses Problem tritt auf, weil die Klasse, die mithilfe von sqlalchemy zugeordnet wird, die Kontrolle über die Getter/Setter-Methoden übernimmt, wodurch verhindert wird, dass sqlalchemy Änderungen registriert.
Diese Antwort scheint jedoch riskant zu sein, wenn Sie das Attribut als geändert markieren, aber in state_dict keinen Zustand dafür haben, wird KeyError ausgelöst. site-packages/sqlalchemy/orm/persistence.py ", Zeile 454, in _collect_update_commands value = state_dict [propkey] – Drachenfels
Danke! Ist es möglich, die Primärschlüssel-ID auch mithilfe des Attributs set zu ändern? –