File: views.py

package info (click to toggle)
django-reversion 5.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 868 kB
  • sloc: python: 2,631; makefile: 22; sh: 7; sql: 1
file content (30 lines) | stat: -rw-r--r-- 853 bytes parent folder | download | duplicates (2)
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)