随着时间的推移跟踪django模型对象

DjangoModelTracker的Python项目详细描述


型号跟踪器

跟踪模型对象随时间变化,以便您知道是谁做了什么。

安装

  • 安装软件包
pip install django-model-tracker
  • 将应用程序添加到项目的已安装应用程序中
INSTALLED_APPS=('....','ModelTracker',)
  • 在url.py中添加以下行
importModelTrackerurlpatterns=patterns('',...url(r'^track/',include('ModelTracker.urls')),...)
  • 运行迁移
   python manage.py migrate ModelTracker 
  • 将以下行添加到models.py文件中
fromModelTrackerimportTracker
  • 将要跟踪的每个模型从Tracker.ModelTracker转换为inhert,而不是models.Model

旧代码

classEmployee(models.Model):name=models.CharField(max_length=255)address=models.CharField(max_length=255)age=models.IntegerField()

新代码

classEmployee(Tracker.ModelTracker):name=models.CharField(max_length=255)address=models.CharField(max_length=255)age=models.IntegerField()
  • 对于每个save()调用,向用户添加用户名
    • 旧代码
emp=Employee()emp.save()
 * New Code
emp=Employee()emp.save(request.user.username)
  • 从0.5版开始,您可以传递event_name参数以将更改标记为事件

    • 新代码
emp=Employee()emp.save(request.user.username,event_name="Created the user")

使用中间件

您可以将ModelTracker.middleware.ModelTrackerMiddleware添加到中间件类中,以便从请求中自动获取用户名。

MIDDLEWARE_CLASSES=('....','ModelTracker.middleware.ModelTrackerMiddleware',)

注意:如果将用户名作为None传递,则不会保存更改。

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

推荐PyPI第三方库


热门话题
java如何避免springbootstarterparent和dependency中的flyway包冲突   java文本文件写入不起作用   java获取名为DAO类的Bean创建异常   java类路径和清单文件   如何使用Java中的模式来获取像C中的“sscanf”这样的组?   java Spring自动连接具有构造函数的类   clientSecurity运行的java geode示例失败   java JavaFX:在FXML中从ResourceBundle访问非string对象   java登录到google firebase   java对象在通过构造函数后不会更改。为什么?   java(Android)对特定页面的操作webView   javascript如何在webview的js中从java调用变量   持久化—一种在Java中存储和检索对象而不使用关系数据库的简单方法?   java Ldap获取通讯组列表中的用户   java检查温度条件   java后退按钮警报框(Android Studio)   数组java列表问题:为什么我运行它时,它会在第三次打印时打印出4?   java相对路径与绝对路径