Metadata-Version: 2.1
Name: django-audit-fields
Version: 0.1.10
Summary: Add model fields to track creation and modification dates, users and more on save.
Home-page: http://github.com/erikvw/django-audit-fields
Author: Erik van Widenfelt
Author-email: ew2789@gmail.com
License: GPL license, see LICENSE
Keywords: django audit model fields
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.7
Requires-Dist: arrow
Requires-Dist: django-revision
Requires-Dist: edc-utils

|pypi| |travis| |codecov| |downloads|

django-audit-fields
-------------------

Installation
============

.. code-block:: bash

	pip install django_audit_fields


Add both ``django_audit_fields`` and ``django_revision`` to INSTALLED_APPS::

.. code-block:: python

    INSTALLED_APPS = [
        "...",
        "django_revision.apps.AppConfig",
        "django_audit_fields.apps.AppConfig",
        "..."]


Usage
=====

Add model fields to track creation and modification dates, users and more on save.


Declare your model using ``AuditModelMixin``

.. code-block:: python

    from django_audit_fields.model_mixins import AuditModelMixin

    class MyModel(AuditModelMixin,  models.Model):

        ...

        class Meta(AuditModelMixin.Meta):
        	pass        

Preferably, use a UUID as primary key by declaring your model using ``AuditUuidModelMixin``

.. code-block:: python

    from django_audit_fields.model_mixins import AuditUuidModelMixin

    class MyModel(AuditUuidModelMixin, models.Model):

        ...

        class Meta(AuditUuidModelMixin.Meta)
        	pass

The model mixins ``AuditModelMixin`` and ``AuditUuidModelMixin``:

* add audit fields (created, modified, user_created, user_modified, hostname_created, hostname_modified);

The model mixin ``AuditUuidModelMixin`` also

* sets the id fields to a ``UUIDField`` instead of an integer;


Most models require an audit trail. If so, add the ``HistoricalRecord`` model manager from ``django-simple-history``:

.. code-block:: python

    from simple_history.models import HistoricalRecord

    class MyModel(AuditUuidModelMixin, models.Model):

        ...
        history = HistoricalRecord()


Notes
=====

User created and modified fields behave as follows:

* created is only set on pre-save add
* modified is always updated


.. |pypi| image:: https://img.shields.io/pypi/v/django-audit-fields.svg
    :target: https://pypi.python.org/pypi/django-audit-fields

.. |travis| image:: https://travis-ci.com/erikvw/django-audit-fields.svg?branch=develop
    :target: https://travis-ci.com/erikvw/django-audit-fields

.. |codecov| image:: https://codecov.io/gh/erikvw/django-audit-fields/branch/develop/graph/badge.svg
  :target: https://codecov.io/gh/erikvw/django-audit-fields

.. |downloads| image:: https://pepy.tech/badge/django-audit-fields
   :target: https://pepy.tech/project/django-audit-fields


