问题标签 [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 回答
650 浏览

django - django 数据历史/审计

我需要我的 django 项目的模型数据历史记录,并且遇到了以下产品:

  • django-reversion
  • django-修订
  • django-简单历史
  • django-审计日志
  • 清洁版

我找不到这些最近的比较;2011 年的比较(http://treyhunner.com/2011/09/django-and-model-history/)提供了一些优点和缺点,但我想知道是否有人有更新的东西。支持模式迁移(南和 1.7 本机)是必要的,看看哪个用户更改了什么会很好,并且支持外键和 M2M 也很好。

0 投票
1 回答
161 浏览

python - Django-Reversion 中的多个撤消

我想撤消在模型中所做的更改。我可以使用 django-reversion 将其撤消 1 级。但是我如何多次撤消我的更改。

例如:-

我有一个模型

现在,我更新了两次。用两次这个词,我的意思是我调用了这个函数两次或者说 n 次。

我如何在 n 次下撤消。

目前,我正在这样做。

我要怎么做???

0 投票
1 回答
343 浏览

django - 我可以仅将 django reversion 用于管理员或前端吗

我正在尝试使用 Django reversion,以便我可以将前端应用程序中所有模型的所有更改的审计日志Angular JS作为前端和Django REST后端完成。

我正在考虑使用 Django Reversion,他们的文档这样说

https://django-reversion.readthedocs.org/en/latest/how-it-works.html

在管理界面中使用 VersionAdmin 子类的任何模型都将自动注册到 django-reversion。因此,仅当您希望覆盖默认注册设置时,才需要手动注册这些模型。

现在这是否意味着我只能在管理站点中使用它,而不能在通过前端保存的模型上使用。

0 投票
1 回答
866 浏览

django - 如何使用 django-reversion 恢复相关对象

如何通过 django-reversion 恢复相关对象。

我尝试了以下不起作用...

模型.py:

以及以下测试

测试.py:

0 投票
1 回答
1614 浏览

django - 在 django-reversion 中跟踪外键的反向关系

我试图弄清楚如何使用 Django-reversion 跟踪 Django 中外键关系的更改。

简而言之,我正在尝试对 a 进行建模Codelist,其中包含属于一个 CodelistCode的 s 。这可以使用外键建模,如下所示:

此外,编辑代码的唯一方法是在通过其代码列表访问的管理站点中使用内联表单。出于所有意图和目的,代码属于代码列表,因为它们应该......

除非涉及到回归。

我正在使用reversion.middleware.RevisionMiddleware跟踪所有编辑更改,因为有一些用于编辑代码的非管理员表单。

我想要的是当我看到代码列表的历史时,它也应该更改为代码,但我无法在Django-reversion API中弄清楚这一点。问题在于 API 涵盖了跟踪代码和查看代码列表的更改,而不是通过遵循相反的关系来反过来。

有谁知道如何做到这一点?

0 投票
2 回答
1174 浏览

python - 在 DeleteView 中标记为已删除而不是实际删除

我正在使用 Django 中的 DeleteView 删除不同模型中的对象。

问题是我不希望对象被完全删除,而只是隐藏。首先,我认为保持我的视图不变是有意义的,而是覆盖每个模型中的删除方法,如下所示

但后来我注意到删除方法不会在批量删除中调用,所以这种方法风险太大。

有人可以推荐一个好方法吗?我仍然想保持 DeleteView 的正常行为,但它应该只是“停用”对象而不是删除它们。

删除视图如下:

如果我替换为就足够self.object.delete()

当我将我的对象标记为已删除时,如何确保我的查询集不会包含已删除的对象?我可以简单地替换 ListView 中的 get_queryset() ,但它们应该被排除在页面上的任何查询集中,所以我想知道如果我自定义对象管理器是否会得到更好的结果?

我一直在看 django-reversion。如果我想恢复它们,我可以简单地以正常方式删除所有对象然后使用 django-reversion 吗?这种解决方案有什么缺点吗?

0 投票
3 回答
4530 浏览

django - 如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序中

我有一个使用 Django 和 Django Rest 框架开发的应用程序。我想将 django-reversion 功能添加到我的应用程序中。

我已经尝试过http://django-reversion.readthedocs.org/en/latest/api.html#low-level-api但我未能对我的应用程序进行特定更改。

以下是应用程序的模块,我想在其中包含 Django-reversion 以在对象被删除时恢复它们。如何为以下模块设置 django-reversion 配置

管理员.py:-

模型.py:-

序列化程序.py:-

urls.py :-

视图.py:-

0 投票
1 回答
1523 浏览

django - 如何为 django-reversion History 对象提供视图?

django reversion 的管理员集成非常简单。当我访问时,127.0.0.1/admin我可以选择让员工用户恢复已删除的对象或查看以前的版本。

但这仅来自管理员方面。如何为历史对象提供公共视图?我正在尝试通过 Django-REST-Framework 提供历史访问。

0 投票
1 回答
508 浏览

python - 使用 django reversion 更改名称后如何获取先前的对象值?

如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序中,我添加了以下函数来获取对象的历史记录

如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序的 urls.py 中,我添加了一条历史路径。

当我访问 127.0.0.1:8000/history 时,我得到的 json 数据为

执行流程:当我访问 127.0.0.1:8000/admin 并将上述对象的值更改为“其他对象”时。当我刷新 127.0.0.1:8000/历史。我又得到了一个 json 字段

下面是我在历史函数中添加一个额外字段时遇到的问题:

我想在历史函数的上述迭代中再包含一个字段。像 previous_object: " " 来获取对象名称,即使在更改名称之后也是如此。例如:- 从 127.0.0.1:8000/admin 我将对象名称从“apple”更改为“orange”。

当我访问历史路线 127.0.0.1:8000/history

我应该能够看到如下

0 投票
2 回答
692 浏览

python - 将 revision.comment 拆分为 Django-reversion 中的字段和值

我有一个显示版本对象历史列表的功能,如下所示,我在https://github.com/praneethkumarpidugu/django-reversion/blob/master/rev_history/views.py#L1的公共仓库中有这个特定的 .py 文件:

为了更改我访问了管理页面 127.0.0.1:8000/admin 的对象实体,我将表示“is_active”的布尔字段从 true 更改为 false。

现在,我来到历史页面 127.0.0.1:8000/history

我看到的json数据如下:

可能有的解决方案:我希望将评论拆分为previous_value:“True”,“new_value”:“False”,“field”:“is_active”。

我的研究推动解决方案我深入研究了 reversion/models.py 的 Revision 类,看看是否有任何额外的争论来显示字段和值,但据我了解,我无法找到可以找到字段和值以供评论的线索. 供参考的是Revision的评论

表示字段的解决方案:这可能看起来有点傻,但我只是侵入了我自己的评论数据以将字段表示为

但是我仍然需要获取更改后的原始值和新值的字段值。