如何在管理员(Django Reversion)中看到Gerenic DeleteView的修订版?

时间:2015-09-06 14:51:38

标签: django django-generic-views django-reversion

当我在安装了Reversion的Django Admin中删除对象时,我可以查看所有已删除的对象。但是当我在自编(gerenic)视图中删除它时,我看不到删除的对象。 (我正在使用上下文管理器。当我在通用视图中更新对象时,我可以看到历史记录中的更改。)

这就是我尝试这样做的方法(所有的类和方法都没有修改):

class ModelDelete(DeleteView):
    def delete(self, request, *args, **kwargs):
        with transaction.atomic(), reversion.create_revision():
            reversion.set_user(request.user)
            reversion.set_comment('Deleted')
            return super(ModelDelete, self).delete(request, *args, **kwargs))

我正在使用Django 1.7.10和Reversion 1.9.3。

我在文档中找不到如何做到这一点。我错过了什么?我认为这很容易。

1 个答案:

答案 0 :(得分:1)

删除对象不会将其添加到修订版中。尝试在删除对象之前保存对象。

    with transaction.atomic(), reversion.create_revision():
        obj = self.get_object()
        obj.save() # save the object so it is added to the revision.
        reversion.set_user(request.user)
        reversion.set_comment('Deleted')
        return super(ModelDelete, self).delete(request, *args, **kwargs))