使用户信息始终可用并自动记录更改的中间件

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException