Breaking Changes
- Dropped support for Django 2.2 (gh-968)
- Dropped support for Django 3.1 (gh-952)
- Dropped support for Python 3.6, which reached end-of-life on 2021-12-23 (gh-946)
Upgrade Implications
- Run
makemigrations
after upgrading to realize the benefit of indexing changes.
Full list of changes
- Added queryset-based filtering with
as_of
(gh-397) - Added index on
history_date
column; opt-out with settingSIMPLE_HISTORY_DATE_INDEX
(gh-565) - RecordModels now support a
no_db_index
setting, to drop indices in historical models,
default stays the same (gh-720) - Support
included_fields
forhistory.diff_against
(gh-776) - Improve performance of
history.diff_against
by reducing number of queries to 0 in most cases (gh-776) - Fixed
prev_record
andnext_record
performance when usingexcluded_fields
(gh-791) - Fixed
update_change_reason
in pk (gh-806) - Fixed bug where serializer of djangorestframework crashed if used with
OrderingFilter
(gh-821) - Fixed
make format
so it works by using tox (gh-859) - Fixed bug where latest() is not idempotent for identical
history_date
records (gh-861) - Added
excluded_field_kwargs
to support customOneToOneField
that have
additional arguments that don't exist onForeignKey
. (gh-870) - Added Czech translations (gh-885)
- Added ability to break into debugger on unit test failure (gh-890)
- Added pre-commit for better commit quality (gh-896)
- Russian translations update (gh-897)
- Added support for Django 4.0 (gh-898)
- Added Python 3.10 to test matrix (gh-899)
- Fix bug with
history.diff_against
with non-editable fields (gh-923) - Added HistoricForeignKey (gh-940)
- Support change reason formula feature. Change reason formula can be defined by overriding
get_change_reason_for_object
method after subclassingHistoricalRecords
(gh-962)