问题标签 [django-simple-history]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4050 浏览

django-rest-framework - 从 Django 简单历史中获取休息历史

我正在使用 django-simple-history (1.8.1) 和 DRF (3.5.3)。我想获得一个包含每个元素历史的休息服务。举个例子吧!

模型.py

那么,什么必须是serializers.py?我想得到类似的东西:

在没有找到解决方案的情况下搜索后,我终于自己找到了。但如果有人有更好的解决方案......

0 投票
4 回答
3136 浏览

django - 如何使用 django-simple-history 恢复更改,特别是删除

我们已经django-simple-history为我们的模型设置了。最近一大堆模型被神秘地删除了。事后几天就注意到了这一点,因此最好避免完整的数据库备份恢复,因为这会清除事后发生的手动更改。

我找不到任何方法来轻松恢复模型实例,特别是已删除的实例。我可以查询模型的历史版本并找到已删除的所有内容。有了它,我还可以观察到它们都将删除作为最后一次更改。我可以使用 history - 1 上的实例属性来获取删除前的状态,但是如果我尝试保存它,它会出错,因为模型实例已被删除并且不再存在。

所以基本上,如果我有 django-simple-history 的历史记录,那么恢复已删除模型实例的最干净的方法是什么?如果可能的话,我想保留历史记录,所以在完全重新创建对象之前我正在研究任何解决方案。

0 投票
2 回答
1507 浏览

django-simple-history - 如何获取 django-simple-history 中最后更改的对象?

使用django-simple-history,如何从我的模型中获取最后更改的对象?

我试过MyModel.history.most_recent()了,它需要一个模型实例,所以它可能返回所选实例的最新版本。

我可以查询Abonnent.history.all(),这显然会返回所有模型对象的所有版本的列表。这看起来不错,但我怎样才能过滤掉最新的并获得最后一次更改的日期?

0 投票
1 回答
417 浏览

django - 如何为所有 DRF 删除 API 添加删除原因

在使用Django Simple History跟踪模型更改的 Django Rest Framework 应用程序中,如何强制用户Reason for Deletion为所有Destroy End Points传递 a ,然后将该原因传递给 Django Simple History 的Change Reason

此外,对于具有删除级联的相关模型,该原因是否会传递给相关的已删除条目?

更新:

在 SO 上的另一个问题之后,尝试如下覆盖 destroy 方法。问题是,changeReason 即history_change_reason删除后的位置在哪里?我以为这将是历史表中的一列?但是,它不存在所以即使下面的代码正在运行,我也找不到保存原因的位置。

缺少历史更改原因列:

history_*我在所有历史表中看到的唯一内容是:

history_change_reason我在任何历史记录表中都找不到

0 投票
1 回答
904 浏览

python - 在 django_simple_history 中使用 prefetch_related

我有一个模型 Booking,其中有一段历史。像这样,我使用 django_simple_history

我使用管理命令来执行任务。我想在预订时预取历史记录

如何在预取中使用简单的历史记录?

0 投票
4 回答
1889 浏览

python - django-simple-history, displaying changed fields in admin

When I inherit from admin.ModelAdmin, in history on admin page I can see what fields has been changed. However, now I need to use django-simple-history to track all my model changes. Now, for admin, I inherit for simple_history.SimpleHistoryAdmin. Whilst I can see all of the model changes and revert them, I cannot see, which fields were changed. Is it possible to add that handy functionality to SimpleHistoryAdmin?

0 投票
2 回答
8032 浏览

python - Django 在 update() 上触发 post_save

所以我正在使用 django-simple-history 模块来跟踪模型实例的变化。但是,它使用 post_save 信号来执行此操作。在我的项目中,我还需要它在 update() 上触发。

我的问题是:如何覆盖 update() 方法来触发 post_save 信号?

0 投票
1 回答
315 浏览

django - 使用 django 简单历史恢复站点上的对象而不是管理员

我在管理站点上使用了 django 简单历史包,以便能够跟踪并恢复到模型对象的先前版本。我正在设计一个 Web 表单,允许用户使用 django 上的模型表单更改模型对象的实例,并希望允许用户查看并恢复到以前的版本。也让他们看到与当前版本相比有哪些变化。

使用下面的代码,我可以在 histoire 下获取模板上的历史记录列表。

在我的模板中,

但理想情况下,我希望 item.history_object 成为用户可以查看前一个对象并能够在需要时恢复的链接。

0 投票
2 回答
3365 浏览

python - 从 Django 管理员中删除历史按钮

我想根据用户类型从 django 管理按钮启用/禁用历史记录。

在此处输入图像描述

我的最终目标是能够理解如何显示隐藏此按钮。

0 投票
2 回答
4423 浏览

django - django 简单历史 - 如何在管理员中未创建对象时创建历史

我正在使用 django-simple-history==1.9.0 包和 django 1.8。当我在管理员之外创建一个对象,然后在管理页面中查看该对象的历史记录时,它会显示一条消息

此对象没有更改历史记录。它可能不是通过此管理站点添加的。

我尝试为该对象设置用户:

但这并没有解决问题。

返回 1,因此生成了历史记录。任何想法如何让它显示历史或如何创建额外的历史?我也试过update_change_reason但这根本不起作用。