使用djangionlog显示历史变更模型

2024-05-13 23:32:38 发布

您现在位置:Python中文网/ 问答频道 /正文

使用: django 1.10版本2.0.8。

我的问题是如何显示一个对给定模型实例所做更改的漂亮列表。我的意思是,用户可以快速看到所有修订中所有更改(字段的新值)的列表。他不需要看到所有字段,只需要看到更改后的新值。在

所以我发现存储更改的一个好工具是django reversion。然而,我找不到解决我的问题的方法,正如我所提到的那样,就是为给定的模型实例显示一个很好的更改日志历史记录。在

我找到了一个解决方案,可以比较两个修订版django reversion compare,但这不是我要找的。也许有更好的工具来解决这个问题?在

任务太快向用户显示由谁和何时更改的内容。该模型简单,不存储大量数据。但它确实存储外键。在


Tags: 工具django实例方法用户模型版本内容
1条回答
网友
1楼 · 发布于 2024-05-13 23:32:38

我也在寻找同样的方法,在阅读了一些soposts、docs等之后,我似乎不得不从以下三种方法中选择一种来大致选择解决方案:

1)在保存新模型实例之前,获取现有模型实例。比较每个字段。将更改的字段放入reversion.set_注释('(此处的所有更改)')。继续保存模型实例。在

2)将旧字段的一个副本分别保存在模型的\uu init_u()中,然后将新字段与它们(在model的Save()中)进行比较,以跟踪更改的内容。将更改的字段放入reversion.set_注释('(此处的所有更改)')。继续保存模型实例。(此方法将节省数据库查找)

3)使用django reversion的low-level API生成一个diff,并以某种方式与管理员集成

最后我使用了django-reversion-compare,这对我展示EditsWiki样式非常有用(不管怎样,它都可能使用上面的(3))

django reversion的开发人员也将confirmed(3)作为一个更好的选择,它也避免了竞争条件。在

如果你想探索不同的选择,this是一个很好的帖子,里面有很多好的想法和它们的优缺点。在

(我也在Django 1.10上)

相关问题 更多 >