Python Django回归中的多个撤消

Python Django回归中的多个撤消,python,django,django-reversion,Python,Django,Django Reversion,我想撤消在模型中所做的更改。我可以使用django反转将其撤销一级。但如何多次撤消更改 例如:- 我有一个模特 with reversion.create_revision(): server_obj = Server(url = 1) server_obj.save() 现在,我更新了两次。两次,我的意思是我调用了这个函数两次,或者说n次 with reversion.create_revision(): url = bundle.data['url'] se

我想撤消在模型中所做的更改。我可以使用django反转将其撤销一级。但如何多次撤消更改

例如:-

我有一个模特

with reversion.create_revision():
    server_obj = Server(url = 1)
    server_obj.save()
现在,我更新了两次。两次,我的意思是我调用了这个函数两次,或者说n次

with reversion.create_revision():
    url = bundle.data['url']
    server_obj.url = url
如何在n次向下中撤消

目前,我正在这样做

your_model = Server.objects.get(id = id)
version_list = reversion.get_unique_for_object(your_model)
version = version_list[1]
version.revision.revert()
我该怎么做?

版本列表。订单依据('-revision\u date\u created')[2]。回复()

但是,这将在不保留其自身修订的情况下恢复

queryset中有一个名为last()的东西,它显示了对象在上次更改之前保存的版本。但是,它不适用于您的用例,因为它不跟踪revert()


我认为唯一可行的方法是制作一个跟踪撤消的外部模型。这很混乱,而且容易出现边缘情况。我觉得一定有更好的方法可以做到这一点。

可能是第二个。我已经读过并尝试过了。这不能解决我的目的。我能够检索以前保存的对象列表。但如何多次撤销它呢
version\u list
会返回以前保存的所有对象的列表。但是如何将其用于多个撤消?您必须在版本列表中查找,直到找到要还原的版本。能否提供一个示例代码段?那真的很有帮助。谢谢谢谢@Beltiras。这将直接恢复到第二次更新。我想要这样的东西。我发过一次。然后再次更新(1)。再次(2),再次(3),再次(4),再次(5)。现在我想一步一步地撤销。第一次撤消应恢复为(4),另一次撤消应恢复为(3),另一次撤消应恢复为(2),另一次撤消应恢复为(1),即是说,此后再也不能撤消。这是清楚的。这也很难做到。尝试修改原始代码中的一行:version\u list=reversion.get\u unique\u for\u object(您的\u model)。filter(revision\u id\uu lte=您的\u model.revision\u id)它将做什么?请解释一下。感谢您过滤掉比当前设置的版本更早的任何修订。您应该真正尝试提供的代码,并在REPL中使用它。这是理解复杂系统的唯一方法:把手弄脏。我试过了。什么是
您的\u model.re‌​视觉识别码
??我的型号没有任何
修订版\u id