0

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

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

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。

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

4

1 回答 1

0

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

    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))
于 2015-09-06T14:57:03.300 回答