A method for logging user actions on models
Project description
This app provides the ability to log user actions on model instances. Action types can be defined by app developers, and can reference multiple objects. Each action type defines it’s own template used for rendering output of the message. It allows verbose messages specific to the action that occurred.
Object Log includes shortcuts both for adding entries and building views to display them.
Installation
There are several ways to install Object Log.
Object Log ships a standard distutils setup.py. A classic invocation to install from setup.py might be:
$ python setup.py install
You may need to add sudo in order to install to the system Python.
$ sudo python setup.py install
We also have Object Log on PyPI, so it can be installed using pip. (easy_install also works, but we do not recommend easy_install. Just use pip.)
$ pip install django-object-log
If you are installing Object Log directly into a Django app, and want to distribute Object Log with your app, simply copy the object_log folder into your Django project.
Configuring Your Django Project
Add “object_log” to INSTALLED_APPS
Run ./manage.py syncdb
Add object_log.urls to urls if you wish to add views for displaying logs
Using Object Log
First, register some action types. This can be done at any time but should ideally be done once in models.py. LogActions require both a key and a template used to render that Action type.
>>> from object_log.models import LogAction >>> LogAction.objects.register('MY_ACTION', 'path/to/my/template.html')
Now, that LogAction type can be used whenever that action occurs
>>> from object_log.models import LogItem >>> log = LogItem.objects.log_action >>> log('MY_ACTION', user, some_object) >>> log('EDIT', user, some_object) >>> log('DELETE', user, some_object)
Arbitrary data can also be included with each log entry by including a dict It is available in the LogAction template as {{data}}. This is useful for caching information to reduce related queries when rendering logs
>>> log('MY_ACTION', user, {'my_obj':str(obj1})
The data dict can be automatically populated from objects using a cache function registered with the LogAction. The cache function recieves the user, objects, and any data passed to log_Action(). It should return a dict. This data overwrites manual data, you must merge it manually if you want to use both.
>>> def cache(user, obj1, obj2, obj3, data): >>> return dict(obj_str=str(obj1)) >>> >>> LogAction.objects.register('MY_ACTION', 'path/to/my/template.html', cache)
log_action can then be used as normal.
>>> log('MY_ACTION', user, some_object)
See the wiki for more details: http://code.osuosl.org/projects/django-object-log/wiki
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-object-log-0.7.1.tar.gz
.
File metadata
- Download URL: django-object-log-0.7.1.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5c38788ea45acfebffe3917d2c0db5e69c6f56c7f57028b3383f270119c5cb1 |
|
MD5 | 7a02848d0957ce3c4e5b7a2554a1402f |
|
BLAKE2b-256 | 630b34369b71a81e45cac478f0a64c6c86dca50cee22a87fdb00774172553bf6 |