Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leandrosouza/django-simple-audit
https://github.com/leandrosouza/django-simple-audit
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/leandrosouza/django-simple-audit
- Owner: leandrosouza
- Created: 2013-06-25T14:35:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-06-10T18:52:52.000Z (over 3 years ago)
- Last Synced: 2024-09-20T03:54:10.181Z (4 months ago)
- Language: Python
- Size: 101 KB
- Stars: 46
- Watchers: 8
- Forks: 25
- Open Issues: 7
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
- starred-awesome - django-simple-audit - (Python)
README
****************************************
django simple audit
****************************************
This applications was created to audit model's changes and maintain a log of themInstallation
===============
You can install django-simple-audit in 2 ways: using pip or by setup.py install.. code-block:: bash
$ pip install django-simple-audit
Then modify your settings.py, adding the package `simple_audit` in INSTALLED_APPS and in MIDDLEWARE_CLASSES add
`simple_audit.middleware.TrackingRequestOnThreadLocalMiddleware`:.. code-block:: bash
INSTALLED_APPS = (
'...',
'simple_audit',
)MIDDLEWARE_CLASSES = (
'...',
'simple_audit.middleware.TrackingRequestOnThreadLocalMiddleware',
)DJANGO_SIMPLE_AUDIT_ACTIVATED = True
Usage
======Tracking changes on a model
----------------------------to audit a model you need import `simple_audit` and then register the model to be audited.
.. code-block:: python
from django.db import models
import simple_auditclass Message(models.Model):
title = models.CharField(max_length=50, blank=False)
text = models.TextField(blank=False)def __unicode__(self):
return self.textclass Owner(models.Model):
name = models.CharField(max_length=50, blank=False)
def __unicode__(self):
return self.nameclass VirtualMachine(models.Model):
name = models.CharField(max_length=50, blank=False)
cpus = models.IntegerField()
owner = models.ForeignKey(Owner)
so = models.CharField(max_length=100, blank=False)
started = models.BooleanField()def __unicode__(self):
return self.namesimple_audit.register(Message, Owner, VirtualMachine)
Advanced Usage (without httprequest or our middleware)
--------------------------------------------------------You can use django-simple-audit without an http request (for example in management command). In this situation
there is no http request on thread context. To ensure gathering all modification on a single AuditRequest, you can
specify it:.. code-block:: python
AuditRequest.new_request(path, user, ip)
try:
# my code... in same thread
finally:
AuditRequest.cleanup_request()Tracking m2m fields changes
----------------------------Tracking m2m fields changes is still experimental, but you can enable it with the following variable:
DJANGO_SIMPLE_AUDIT_M2M_FIELDS = True
You need to have at least one cache backend set in your django settings, otherwise the previous settings will be set to False.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique',
'TIMEOUT': 300,
}
}Dependencies
============* Django >= 1.4.x
* django.contrib.contenttypes installed in INSTALLED_APPSTODO
====
* Improve testsCHANGELOG
=========
* 0.1.22
* Fixing admin display Current Content when audited model was deleted ( thanks otherpirate )
* 0.1.21
* Problems with upload to pypi ( the version was used ) - Sux* 0.1.20
* Add .get_queryset to AuditManager ( thanks sburns )* 0.1.19
* Tracking user from Django REST Framework authentication ( thanks jnishiyama )* 0.1.15
* use larger TextField for storing values ( thanks dinie )
* Czech translation ( thanks cuchac )* 0.1.14
* improved m2m audit feature ( thanks dinie )
* Add support for Custom user model ( thanks dinie )
* Option to turn on/off auditing ( thanks dinie )* 0.1.12
* Created some simple tests
* Enable many to many fiedls tracking (see Usage)