Track changes to your storm model objects with stormchaser.
Create a history table to store changes in:
>>> from storm.locals import * >>> database = create_database('sqlite:') >>> store = Store(database) >>> store.execute(""" CREATE table history ( id INTEGER PRIMARY KEY AUTOINCREMENT, ref_class VARCHAR(200), ref_pk VARCHAR(200), ref_attr VARCHAR(200), new_value VARCHAR(200), ctime DATETIME, user VARCHAR(200) )""")
Now configure a Changelog class that uses the history table:
>>> changelog_cls = Changelog.configure(table='history')
And add it to your model class columns as a validator:
>>> class Article(object): ... __storm_table__ = 'articles' ... content = Unicode(validator=ChangelogTracker(changelog_cls)) ...