django-simple-history stores Django model state on every create/update/delete.
- Quick Start
- Common Issues
- Advanced Usage
- Database Migrations
- Locating past model instance
- History for a Third-Party Model
- Allow tracking to be inherited
- Recording Which User Changed a Model
- Change Base Class of HistoricalRecord Models
- Custom history table name
- Choosing fields to not be stored
- Change Reason
- Save without a historical record
Code and issue tracker: https://github.com/treyhunner/django-simple-history
Pull requests are welcome.
- Use get_queryset rather than model.objects in history_view. (gh-303)
- Change ugettext calls in models.py to ugettext_lazy
- Add –batchsize option to the populate_history management command. (gh-231)
- Add ability to show specific attributes in admin history list view. (gh-256)
- Add Brazilian Portuguese translation file. (gh-279)
- Fix locale file packaging issue. (gh-280)
- Add ability to specify reason for history change. (gh-275)
- Test against Django 1.11 and Python 3.6. (gh-276)
- Add excluded_fields option to exclude fields from history. (gh-274)
- Add Polish locale.
- Add Django 1.10 support.
- Clear the threadlocal request object when processing the response to prevent test interactions. (gh-213)
- History tracking can be inherited by passing inherit=True. (gh-63)
- Add ability to list history in admin when the object instance is deleted. (gh-72)
- Add ability to change history through the admin. (Enabled with the SIMPLE_HISTORY_EDIT setting.)
- Add Django 1.9 support.
- Support for custom tables names. (gh-196)
- Respect to_field and db_column parameters (gh-182)
- Use app loading system and fix deprecation warnings on Django 1.8 (gh-172)
- Update Landscape configuration
- Fix OneToOneField transformation for historical models (gh-166)
- Disable cascading deletes from related models to historical models
- Fix restoring historical instances with missing one-to-one relations (gh-162)
- Add support for Django 1.8+
- Deprecated use of
CustomForeignKeyField(to be removed)
- Remove default reverse accessor to auth.User for historical models (gh-121)
- Fix a bug when models have a
- Do NOT delete the history elements when a user is deleted.
- Add support for
- Allow setting a reason for change. [using option changeReason]
- Fix migrations while using
- Fix migrations using south
- Allow history accessor class to be overridden in
- Additional fix for migrations (gh-128)
- Removed some incompatibilities with non-default admin sites (gh-92)
- Fixed error caused by
HistoryRequestMiddlewareduring anonymous requests (gh-115 fixes gh-114)
- Added workaround for clashing related historical accessors on User (gh-121)
- Added support for MongoDB AutoField (gh-125)
- Fixed CustomForeignKeyField errors with 1.7 migrations (gh-126 fixes gh-124)
- Extended availability of the
as_ofmethod to models as well as instances.
history_useron historical objects to be set by middleware.
- Fixed error that occurs when a foreign key is designated using just the name of the model.
- Drop Django 1.3 support
- Fixed error that occurs when models have a foreign key pointing to a one to one field.
- Fix bug when model verbose_name uses unicode (gh-76)
- Allow non-integer foreign keys
- Allow foreign keys referencing the name of the model as a string
- Added the ability to specify a custom
- Note that
simple_historyshould be added to
INSTALLED_APPS(gh-94 fixes gh-69)
- Properly handle primary key escaping in admin URLs (gh-96 fixes gh-81)
- Add support for new app loading (Django 1.7+)
- Allow specifying custom base classes for historical models (gh-98)
- Fixed bug when using
django-simple-historyon nested models package
- Allow history table to be formatted correctly with
- Disallow calling
simple_history.registertwice on the same model
- Added Python 3 support
- Added support for custom user model (Django 1.5+)
- Fixed packaging bug: added admin template files to PyPI package
- Added tests
- Added history view/revert feature in admin interface
- Various fixes and improvements
Oct 22, 2010¶
- Merged setup.py from Klaas van Schelven - Thanks!
Feb 21, 2010¶
- Initial project creation, with changes to support ForeignKey relations.