Wie bekomme ich den ursprünglichen Wert der geänderten Felder?

8

Ich benutze sqlalchemy als mein Orm und benutze declarative als Basis.

%Vor%

Meine Frage ist, woher weiß ich, dass ein Benutzer geändert wurde, und wie die ursprünglichen Werte ohne Abfrage-Datenbank erneut abgerufen werden?

%Vor%

Vielen Dank im Voraus!

AKTUALISIEREN

Ich habe eine Methode gefunden get_history kann den Verlaufswert eines Feldes erhalten, aber ich bin mir nicht sicher, ob es die richtige Methode für meinen Zweck ist.

%Vor%

Also können wir den Wert von get_history überprüfen, aber ist das die beste Methode?

    
Freewind 05.09.2010, 10:54
quelle

1 Antwort

8

\ Um zu sehen, ob user geändert wurde, können Sie überprüfen, ob user in session.dirty . Wenn dies der Fall ist und Sie es rückgängig machen möchten, können Sie

ausführen %Vor%

Beachten Sie jedoch, dass dadurch für die Sitzung alles auf den letzten session.commit() zurückgesetzt wird.

Wenn Sie die ursprünglichen Werte erhalten wollen und der Speicher mich korrekt bedient, ist dies das zweite Element des Tupels, das von der Utility-Funktion sqlalchemy.orm.attributes.get_history zurückgegeben wird. Sie müssten

tun %Vor%

für jedes gewünschte Attribut.

    
aaronasterling 05.09.2010, 11:09
quelle