问题标签 [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.
python - 如何在 django reversion 中存储父指针和数据?
我在我设置的 django-reversion 系统的一些代码上遇到了一些问题。
我有一个ObjectClass
继承自非抽象模型的 django 模型_concept
。很长的故事,现在非常不变。在代码的其余上下文中有意义。
在课堂上,_concept
我将强制ForeignKey
字段workgroup
转到另一个模型。
我已经ObjectClass
像这样注册了Django reversion:
所有旧版本都保存并可以使用 'django-reversion-compare' 进行比较。不幸的是,当我点击任何旧版本查看历史版本时,我得到了错误:
在对 django-reversion 代码进行了一些挖掘之后,我做了一些摆弄,发现错误正在出现:
现在我检查了数据库中存储的版本,发现了一些东西:
- 任何给定
reversion.models.version
的 _concept 历史在该serialized_data
领域都有一个工作组(这是预期的)。 - 任何给定
reversion.models.version
的 a历史ObjectClass
都没有该字段中的任何父信息serialized_data
(这是预期的)。 - 任何给定
reversion.models.version
的 an历史ObjectClass
都没有任何 a_concept_ptr
在该serialized_data
字段中(这是不期望的)。
我怀疑django-reversion
以下划线开头的字段可能存在问题,但是我还有其他以下划线开头的字段。
所以我在这里不知所措。有没有办法让这个模型设置像这样工作?
编辑:
经过更多检查后,似乎异常来自 Haystack 调用,这提醒我由于某种原因忽略了工作组has no workgroup
的事实。reversion
我检查了数据库,这是为一个项目序列化的内容(为便于阅读而添加了换行符):
编辑2:
禁用 haystack 索引器后,现在一切正常,问题是当 django-reversion 尝试保存项目以检查一致性时调用 Haystack 信号 - 然后 django 调用 haystackpost_save
信号尝试使用不完整的数据更新索引。
仍然没有解决方案。我在我的 haystack 处理程序中需要的是一种确定我是否在修订事务中的方法,或者一种防止还原让这些信号触发的方法。后者可能是一个更好的长期目标,因为我怀疑仅仅通过查看修订它正在更新 Haystack 索引。
django - 无法将 VersionAdmin 与不支持保存点的数据库一起使用
我使用 django-reversion 并且我突然遇到了这个错误。
django.core.exceptions.ImproperlyConfigured:不能将 VersionAdmin 与不支持保存点的数据库一起使用。
它发生在线上 admin.site.register(Post,PostAdmin)
尽管在我的生产中一切正常,但无法在我的本地使用 python manage.py。
甚至尝试更改数据库(postgresql)但无济于事。
python - 删除外键模型对象后模型不创建版本(django-reversion)
我有 2 节课:
在大多数情况下它工作正常。例如,当我对 ContactInternal 进行更改时,会为 SysApp 创建一个新版本。对它的工作方式非常满意。
但是,如果我删除从 链接的记录SysApp.internalcontact
,则不会为 SysApp 创建任何版本。
实际上,我想要实现的只是获取 SysApp 的最后修改日期的时间戳以及哪个用户(不需要回滚)。我想知道
我该怎么做django-reversion
?还是有另一种方法可以实现这一目标?
- 注意:SysApp 中还有另一个字段是 M2M 我也想达到相同的结果。
django-reversion - django reversion 和 get__展示
我有一个这样的模型:
我想使用 django-reversion 跟踪用户更改
使用默认示例显示更改
返回
但我想像这样返回选择值:
django - 撤消密集数据库中的级联删除
我有一个相当大的生产数据库系统,基于大量的节点层次结构,每个节点都有 10 多个关联模型。如果有人删除了树中相当高的节点,可能会删除数千个模型,如果删除是错误的,那么恢复它们可能会非常困难。我正在寻找一种方法来给我一个简单的“撤消”选项。
我尝试过使用 Django-reversion,但似乎为了获得我想要的功能(轻松恢复大型级联删除),它需要在每个修订版中存储一堆信息。当我创建初始修订时,该过程完成不到 10%,并且它已经在我的数据库中使用了 8GB,这对我来说不起作用。
那么,这个问题有标准的解决方案吗?或者一种自定义 Django-reversions 以适应我的用例的方法?
python - Django-Reversion:访问 QuerySet 数据
我有一个使用 Django-Reversion 进行版本控制的模型。在终端窗口中,我可以使用以下命令访问模型实例的所有先前版本:
当我检查versions
它是一组所有以前的版本。但是,当我在视图中调用相同的函数并尝试将其添加到上下文中时,我会得到一个单一的VersionQuerySet
,我无法弄清楚如何迭代并从中提取数据。
有什么建议么?
python - 使用 django-reversion 显示模型实例的更改日志历史记录
使用: django 1.10 版本 2.0.8。
我的问题是如何显示对给定模型实例所做的更改的漂亮列表。我的意思是用户可以快速查看所有修订中的所有更改(字段的新值)的列表。他不需要查看所有字段,只需要查看已更改字段的新值。
所以我发现一个很好的存储更改的工具是 django-reversion。但是,我找不到我的问题的解决方案,正如我所提到的,它是为给定模型实例显示一个很好的更改日志历史记录。
我找到了可以比较两个修订版django-reversion-compare 的解决方案,但这不是我想要的。也许有更好的工具呢?
该任务太快地向用户显示由谁以及何时更改的内容。该模型很简单,不存储大量数据。但是它确实存储了外键。
django - Django reversion - 使用旧模型子获取旧模型(获取历史对象)
我正在尝试获取对象的旧版本,然后还获取属于该模型的旧孩子。我将尝试在此处添加一个示例:
然后在使用类似的东西获取旧模型之后versions[1]
这甚至可能吗?
上面的例子被简化了很多。实际上,我需要获取具有嵌套子对象的旧父对象,就像旧父对象存在时一样。所以不仅仅是计数,而是整个对象。
python - 返回 django 模型中刚刚更改的字段
在我的应用程序中,我使用 django-reversion 和 django-reversion-compare 应用程序扩展来控制对象版本。
当我在管理员之外更新对象时,我set_comment()
只想更新字段。如何访问更新字段列表并将它们设置为该回复的评论?
我明白当我比较对象版本时,我会看到哪些字段已更改,但我希望在表的更改历史记录中预览。
我试图这样做django-dirtyfields
,但它返回所有字段。
添加对象:
模型:
python - 如何在具有关系(django)的模型中实现阴影编辑(或修订)?
虽然这是 django+postgresql,但答案可能是通用 sql 或来自“傻瓜数据库”一书。
我们有一个包含多个相互关联的模型(一对一、一对多和多对多字段)的数据库。我们希望允许用户对数据库进行影子编辑,并且仅在他对更改感到满意时才发布。
对于单个模型,我可以使用django-reversions之类的东西,并且可以以一种 hacky 的方式手动处理这些关系。但是,这会产生几个副作用:
- 不受 django 控制的模型可能会更改,这将立即更新数据(无卷影副本)
- 由于正在存储外部关系,如果对它们进行大量编辑,事情会变得很奇怪。
- 大量工作“捕获”CRUD 操作并将它们路由到已发布或草稿条目(如果特定用户正在编辑)
- 发布时需要修复关系上的所有 pks(更多 hack-titude)
我真正想要的是可以做到这一点的东西:
- 允许通过多次 REST CRUD 调用一次编辑多个相关表,并且仅在“发布”后更新
- 允许回滚到以前的版本(版本控制)
有任何想法吗?