title: Tracking changes to all models in Django
body: <p>I am working on a Django + DRF Web Application and I want to track changes to all model instances in the Database and keep a log of all changes made, namely:</p>
  
  <pre><code>TABLE - Table to which record was added/modified
  FIELD - Field that was modified.
  PK_RECORD - Primary Key of the model instance that was modified.
  OLD_VAL - Old Value of the field.
  NEW_VAL - New Value of the field.
  CHANGED_ON - Date it was changed on.
  CHANGED_BY - Who changed it?
  REVISION_ID - Revision ID of the current Model Instance.
  </code></pre>
  
  <p>Later on, I want the user to be able to track the changes made to the model and see which version of the instance was used for a particular action so everything can be tracked.</p>
  
  <p>For this purpose, I tried to understand the various packages in django for tracking database model changes, some of them listed here: </p>
  
  <p><a href="https://djangopackages.org/grids/g/model-audit/" rel="noreferrer">django-model-audit packages</a></p>
  
  <p>I tried <a href="https://github.com/etianen/django-reversion" rel="noreferrer">django-reversion</a>, <a href="https://github.com/treyhunner/django-simple-history" rel="noreferrer">django-simple-history</a>, <a href="https://github.com/jjkester/django-auditlog" rel="noreferrer">django-audit-log</a>, <a href="https://github.com/smn/django-historicalrecords" rel="noreferrer">django-historicalrecords</a>, but I fail to understand how and why I should use each of these packages as some of them seem like an overkill for the requirements. So, after two days of searching and reading through numerous posts about how I should be tracking model changes, I have basically done nothing.</p>
  
  <p>I am new to Django and would appreciate any help.</p>
  
  <p>If something is not clear, feel free to comment your queries. Thanks in advance :)</p>