跳转到主要内容

模型用户操作日志方法

项目描述

此应用程序提供在模型实例上记录用户操作的能力。操作类型可以由应用程序开发者定义,并可以引用多个对象。每个操作类型定义了自己的模板,用于渲染消息的输出。它允许针对发生的操作的详细消息。

对象日志包括添加条目和构建用于显示它们的视图的快捷方式。

安装

安装对象日志有多种方式。

对象日志附带标准的distutils setup.py。从setup.py安装的经典调用可能如下所示

$ python setup.py install

您可能需要添加sudo才能将对象日志安装到系统Python中。

$ sudo python setup.py install

我们还在PyPI上提供了Object Log,因此可以使用pip进行安装。(easy_install也可以使用,但我们不建议使用easy_install。请只使用pip。)

$ pip install django-object-log

如果您直接将Object Log安装到Django应用程序中,并希望与您的应用程序一起分发Object Log,只需将object_log文件夹复制到您的Django项目中即可。

配置您的Django项目

  1. 将“object_log”添加到INSTALLED_APPS

  2. 运行./manage.py syncdb

  3. 如果需要添加用于显示日志的视图,请将object_log.urls添加到urls

使用Object Log

首先,注册一些动作类型。这可以在任何时候进行,但最好在models.py中一次性完成。LogActions需要同时提供一个键和用于渲染该动作类型的模板。

>>> from object_log.models import LogAction
>>> LogAction.objects.register('MY_ACTION', 'path/to/my/template.html')

现在,当该动作发生时,可以使用该LogAction类型。

>>> 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)

还可以通过包含一个dict来在每个日志条目中包含任意数据。它可在LogAction模板中作为{{data}}使用。这有助于缓存信息,以减少渲染日志时相关查询。

>>> log('MY_ACTION', user, {'my_obj':str(obj1})

数据字典可以由与LogAction一起注册的缓存函数自动从对象中填充。缓存函数接收用户、对象以及传递给log_action()的任何数据。它应返回一个字典。此数据将覆盖手动数据,如果您想同时使用两者,则必须手动合并。

>>> 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作为正常使用。

>>> log('MY_ACTION', user, some_object)

有关更多详细信息,请参阅wiki:[http://code.osuosl.org/projects/django-object-log/wiki](http://code.osuosl.org/projects/django-object-log/wiki)

作者

Object Log是在俄勒冈州立大学开源实验室(OSUOSL)实现的。主要作者是Peter Krenesky。

项目详情


下载文件

下载适用于您平台的项目文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

django-object-log-0.7.1.tar.gz (13.3 KB 查看哈希值

上传时间

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面