J'utilise sqlalchemy comme mon orm, et j'utilise declarative
comme base.Comment obtenir la valeur d'origine des champs modifiés?
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
Ma question est, comment puis-je savoir qu'un utilisateur a été modifié, et comment obtenir à nouveau les valeurs d'origine sans base de données de recherche?
user = Session.query(User).filter_by(id=user_id).first()
# some operations on user
....
# how do I know if the user.name has been changed or not?
...
# How do get the original name?
Merci d'avance!
MISE À JOUR
J'ai trouvé une méthode get_history
peut obtenir la valeur de l'histoire d'un champ, mais je ne suis pas sûr si elle est la bonne méthode pour mon but.
from sqlalchemy.orm.attributes import get_history
user = Session.query(User).first()
print user.name # 'Jack'
print get_history(user, 'name') # ((),['Jack'],())
user.name = 'Mike'
print get_history(user, 'name') # (['Mike'],(),['Jack'])
Ainsi, nous pouvons vérifier la valeur de get_history
, mais est-ce la meilleure méthode?
Je pense que 'get_history' est la méthode correcte. C'est une fonction publique documentée. – aaronasterling