我想撤消我在模型中完成的更改。我可以使用django-reversion将其撤消1级。如何,但我多次撤消我的更改。
例如: -
我有一个模特
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()
我该怎么办?
答案 0 :(得分:0)
version_list.order_by( ' - revision__date_created')[2] .revert()
然而,如果没有自己的修订版本,它将会恢复。
查询集中有一些名为last()的内容,它显示对象在上次更改之前所持有的版本。但是它不能用于您的用例,因为它不跟踪revert()。
我认为可能的唯一方法是制作一个跟踪撤消的外部模型。那是凌乱的,容易出现边缘情况。我觉得必须有一些更好的方法来做到这一点。