问题标签 [django-reversion]

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 投票
1 回答
1986 浏览

django - Django-reversion 和南方兼容性

django-reversion是否适用于南迁移?
django-reversion 和南兼容吗?

当前版本:
- reversion - 1.2.1
- south - 0.7.1

0 投票
2 回答
984 浏览

django - Django - Reversion and South - 如何在更新模型时更新过去的修订?

我想保留 MyModel 实例的过去修订,同时更新和迁移 MyModel 与南。

是否可以更新过去的修订?
是否有必要更新对模型所有类型更改的修订?
什么样的变化,如果有的话,无论如何都会迫使我抹去修订历史?
有没有一种优雅的方法来自动化修订更新过程?

0 投票
1 回答
446 浏览

python - Django - django-reversion - 不能在继承中工作

我创建了一个公共类,它的管理类应该由我的所有模型继承。我的通用管理类继承了 VersionAdmin

问题是,继承 CommonAdmin 的模型管理员没有在“恢复项目”中显示已删除的模型条目。但如果我不使用继承,它工作正常。

0 投票
2 回答
1934 浏览

django - django-reversion 恢复管理员外的多对多字段

我在我的项目中使用 django-reversion。它工作得很好,除了一件事:我无法获得以前版本的 ManyToMany 字段。但是在 django admin 中它是有效的,而不是在我的代码中。要获得以前的版本,我使用以下代码:

vprod = Version.objects.get_for_date(product, ondate).get_object_version().object

它的工作原理是 m2m 字段,其中“产品”是 Product 类的对象,

我可以得到vprod.name它并返回我需要的东西,但是当我尝试时vprod.elements.all()它只返回当前(最后)版本的列表,即使元素的数量发生了变化。

0 投票
1 回答
1346 浏览

python - django-reversion 如何获取用户 ID

我正在使用 django-reversion 为模型提供历史记录,我发现 reversion 创建了两个表,表 'reversion_revision' 和 'reversion_version' 在 reversion_revision 中,存储了最后一次更改的用户 ID。但我无法获得该信息。我使用函数'reversion.get_for_object(Model)'来获取某个模型的所有版本,但该函数只返回我存储在表'reversion_version'中的信息,我需要获取表reversion_revision的用户ID现在有人怎么做我该怎么做才能获取用户 ID?

0 投票
0 回答
448 浏览

mysql - 在 django 中进行类似数据透视表的查询以总结用户编辑的最有效方法

我想向用户展示我所有数据库对象的最后 10 次更改。

我正在使用 django-reversion 来跟踪我的模型对象的更改历史。我在摘要视图中也有些重复这一点。reversion 按对象创建历史列表,摘要视图仅跟踪单个列表,每次更改按时间顺序排列。使用此摘要列表进行查询是否更有效,或者我可以/应该简单地查询所有恢复表以获取所有对象的最近 10 次编辑?

第二部分:我想向用户展示他们按对象分组的编辑

因此,假设用户编辑了 3 个对象,每个对象 10 次。用户在不同的日子编辑了每个对象,所以在第 1 天,用户编辑了所有 3 个,在第 2 天,用户编辑了其中的 1 个,等等。我想向用户展示一个表格,内容如下

其中第二列是最近的用户特定编辑,第三列是任何用户最近的编辑。

我希望用户能够选择对象 1,然后查看他们对该对象的所有编辑:

我该如何构造这个查询?我能想到的最直接的方法是从还原表或汇总表中查询用户过滤的不同/唯一对象列表,然后按用户和对象查询还原以获得更详细的历史记录。这似乎可以更有效。

我是否想按用户创建另一个汇总表来跟踪更改以便以这种格式进行查询?我将如何构建这种类型的表?

一些代码。我用它来获取给定对象的所有历史列表。它为我提供了数据库对象的版本列表、关于编辑内容的注释、编辑日期以及进行更改的用户:

我只是用它来获得一个简单的编辑列表。在此汇总表中,最后 10 个条目是最近的更改(对象、更改内容的详细信息、日期和用户):

0 投票
2 回答
1823 浏览

python - 以前版本的 django-reversion 受控对象

除了管理员之外,我正在使用 django-reversion 文档调用的低级 API来访问我自己的代码中的还原历史记录。为了存储元数据,我Revision通过设置自己的模型(包括OneToOneField(Revision). 到目前为止,一切都很好。

但是鉴于对 a 的引用Revision,我如何才能直接访问它之前的修订版?例如,要生成此修订版与前一个修订版之间的更改列表,有没有比回调reversion.get_for_object并搜索列表以查找我正在寻找的版本更有效的方法?

0 投票
1 回答
3456 浏览

django - Django reversion 不保存在 shell 中所做的修订

我做了初始安装步骤并创建了初始修订版,但是当我在 django shell 中保存模型时,没有创建新修订版:

这是最初的修订。

当我从视图更新模型时,会成功创建修订。

我错过了什么?

models.py 文件是:

我在接收器中看到了一个反转方法post_save,尽管在我调试它时没有调用它。

我有 Django v1.4.1,版本 v1.6.2。

0 投票
1 回答
410 浏览

python - 过滤 django-reversion 返回的结果

刚开始使用django-reversion和django 教程中的 Polls 应用程序。为了让它工作,我所做的就是mysite/polls/admin.py使用以下代码创建:

换句话说,我只完成了管理员集成。在 Poll 模型中,我添加了一个名为approved.

one_object = Poll.objects.all()[1]
version_list = reversion.get_unique_for_object(one_object)

以上version_list包含所有版本的one_object. 我只想获得所有具有approved==True. 然后,我希望查看结果,以便仅显示已批准的民意调查。我该如何过滤这个?

0 投票
1 回答
1287 浏览

django - 捕获模型中所有已更改的字段

我要做的是获取对象更改后可能更改的所有字段的记录。我知道有很多方法可以判断一个对象是否已更改以及其他一些 django 包(如django-revisionsdjango-reversiondjango-simple-history ) ,但我希望能够有一份报告显示所有领域发生了变化,而不仅仅是一个。我还显示了在更改之前该字段是什么,以便我可以对对象进行完整的审核。

我正在考虑使用django-jsonfield添加一个 json 字段,但这样做感觉有点不对劲。好像这是一个黑客或肮脏的工作。有没有更传统或更简单的方法来做到这一点。