使用户信息始终可用并自动记录更改的中间件
django-echelon的Python项目详细描述
Django Echelon-Django项目的老大哥
它允许您从代码中的任何位置查找当前用户,并跟踪用户执行的每个操作。
身份验证和会话中间件
who is the current user
——接受用户对象和登录名。
echelonmiddleware.set庘user(some庘user)
调用它总是安全的,即使没有
当前用户。
echelon middleware.delóu user()
可用于审计目的。使用如下:
from echelon.fields import currentuserfield
class mymodel(models.model):
….
creator=currentuserfield(add_only=true,related_name=“created_mymodels”)
last_editor=currentuserfield(related_name=“last_edited_mymodels”)
…
此字段是django.contrib.auth.models.user模型的外键,您可以将其视为这样。
几乎所有对象的更改。只记录
会话和内容类型。如果要排除其他对象,
可以在settings.py中设置。例如,如果不希望对记录的
权限对象进行更改,则可以添加以下内容:
)
您还可以在模型类中设置一个属性以防止日志记录:
class mymodel(models.model):
…
梯队日志更改=false
第一种方法更适合您不控制的模型,第二种方法更适合您自己的模型。
将此模式添加到
urls.py中的模式:
('^changelog/',include('echelon.urls'))
它允许您从代码中的任何位置查找当前用户,并跟踪用户执行的每个操作。
身份验证和会话中间件
who is the current user
——接受用户对象和登录名。
echelonmiddleware.set庘user(some庘user)
调用它总是安全的,即使没有
当前用户。
echelon middleware.delóu user()
可用于审计目的。使用如下:
from echelon.fields import currentuserfield
class mymodel(models.model):
….
creator=currentuserfield(add_only=true,related_name=“created_mymodels”)
last_editor=currentuserfield(related_name=“last_edited_mymodels”)
…
此字段是django.contrib.auth.models.user模型的外键,您可以将其视为这样。
几乎所有对象的更改。只记录
会话和内容类型。如果要排除其他对象,
可以在settings.py中设置。例如,如果不希望对记录的
权限对象进行更改,则可以添加以下内容:
)
您还可以在模型类中设置一个属性以防止日志记录:
class mymodel(models.model):
…
梯队日志更改=false
第一种方法更适合您不控制的模型,第二种方法更适合您自己的模型。
将此模式添加到
urls.py中的模式:
('^changelog/',include('echelon.urls'))