在Django中创建自定义历史记录,显示特定的字段更改

时间:2018-02-09 16:34:39

标签: python django field history django-simple-history

Heyho,

在Django中我想创建我的模型'应用程序'的历史视图。它显示了一个包含列的表:Who(已更改),When,哪个字段,旧值,新值

我找到了django-simple-history应用程序,它将模型实例的每个版本存储在新模型中。实际上是我需要的,但我不知道,如何获取历史对象的字段,尤其是比较两个有序历史对象的字段。

有人有想法或者可能采用全新方法吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

我最近在自己的项目中做到了这一点。看一下文档的this部分。基本思想是您将所有历史记录彼此进行比较,然后遍历每个差异以查看各​​个字段的变化。如果操作正确,则应该可以构建如下所示的内容:

July 24th, 2018:
    Field | Initial value | New value
    ---------------------------------
    Name  | "Bob"         | "Bobby"
    bool  | True          | False

答案 1 :(得分:0)

您可以考虑以下两件事:

  
      
  1. 创建一个新模型并将历史表连接为外键,它将是一对一的关系。
  2.   
  3. 现在,您必须通过比较每两个字段来创建检测哪些字段已更改的函数。
  4.   

如果我遇到同样的问题,我会按照上述方式行事。 但是,如果您已经在此期间获得了解决方案,请分享。感谢。