A Django abstract base model with helper methods for keeping a full audit trail of changes to an object