Skip to main content

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

  1. Add “object_log” to INSTALLED_APPS

  2. Run ./manage.py syncdb

  3. 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

Authors

Object Log was implemented at the Oregon State University Open Source Lab (OSUOSL). The primary author was Peter Krenesky.

Metadata

Release files for django-object-log 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-object-log 0.7.1
File Size Uploaded Provenance Actions
django-object-log-0.7.1.tar.gz 13.3 kB Without provenance Details for django-object-log-0.7.1.tar.gz

Release files / django-object-log-0.7.1.tar.gz

Download URL django-object-log-0.7.1.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d5c38788ea45acfebffe3917d2c0db5e69c6f56c7f57028b3383f270119c5cb1
BLAKE2b-256 checksum
How to use checksums
630b34369b71a81e45cac478f0a64c6c86dca50cee22a87fdb00774172553bf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for django-object-log 0.7.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.7.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page