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 に答える