Code Monkey home page Code Monkey logo

django-audit-fields's Introduction

pypi actions codecov downloads

django-audit-fields

VERSION

  • <=0.3.3 (DJ 3.1, py 3.7, 3.8)
  • >=0.3.4 (DJ 3.2+, py 3.9+)

Installation

pip install django_audit_fields

Add both django_audit_fields and django_revision to INSTALLED_APPS

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

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

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:

from simple_history.models import HistoricalRecords

class MyModel(AuditUuidModelMixin, models.Model):
    ...
    history = HistoricalRecords()

Notes

User created and modified fields behave as follows:

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

django-audit-fields's People

Contributors

erikvw avatar fetzig avatar syre avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.