UsageΒΆ
To use django-reversion-extras in a project:
# views.py
from django.views import generic
from reversion_extras.views import DetailVersionListView, UpdateVersionListView
from .models import FooModel
from .forms import FooModelForm
# it works just like django.views.generic.DetailView from django
class FooModelUpdateViewWithVersionList(UpdateVersionListView):
model = FooModel
version_paginate_by = 20
success_url = reverse_lazy('foomodel_list')
# it works just like django.views.generic.UpdateView from django
class FooModelDetailViewWithVersionList(UpdateVersionListView):
model = FooModel
version_paginate_by = 20
form_class = FooModelForm
success_url = reverse_lazy('foomodel_list')
class FooModelListView(generic.ListView):
model = FooModel
# models.py
from django.db import models
import reversion
class FooModel(models.Model):
content = models.TextField()
reversion.register(FooModel)
# urls.py
from django.conf.urls import include, url
from .views import (
FooModelListView,
FooModelUpdateViewWithVersionList,
FooModelDetailViewWithVersionList
)
urlpatterns = [
url(r'^$', FooModelListView.as_view(), name='foomodel_list'),
url(r'^update_with_versions/(?P<pk>\d+)/$', FooModelUpdateViewWithVersionList.as_view(), name='foomodel_update'),
url(r'^detail_with_versions/(?P<pk>\d+)/$', FooModelDetailViewWithVersionList.as_view(), name='foomodel_detail')
]