1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
from django.db import transaction
from django.http import HttpResponse
from django.views.generic.base import View
from reversion.views import create_revision, RevisionMixin
from test_app.models import TestModel
def save_obj_view(request):
return HttpResponse(TestModel.objects.create().id)
def save_obj_error_view(request):
with transaction.atomic():
TestModel.objects.create()
raise Exception("Boom!")
@create_revision()
def create_revision_view(request):
return save_obj_view(request)
class RevisionMixinView(RevisionMixin, View):
def revision_request_creates_revision(self, request):
silent = request.headers.get('X-Norevision', "false") == "true"
return super().revision_request_creates_revision(request) and not silent
def dispatch(self, request):
return save_obj_view(request)
|