Merge pull request #4779 from RasmusWL/django-class-based-handlers

Python: Add modeling of django class based view handlers
This commit is contained in:
yoff
2020-12-18 15:58:51 +01:00
committed by GitHub
9 changed files with 247 additions and 23 deletions

View File

@@ -32,7 +32,7 @@ class Foo(object):
class ClassView(View, Foo):
def get(self, request, untrusted): # $ MISSING: routeHandler routedParameter=untrusted
def get(self, request, untrusted): # $ routeHandler routedParameter=untrusted
return HttpResponse('ClassView get: {}'.format(untrusted)) # $HttpResponse

View File

@@ -32,7 +32,7 @@ class Foo(object):
class ClassView(View, Foo):
def get(self, request, untrusted): # $ MISSING: routeHandler routedParameter=untrusted
def get(self, request, untrusted): # $ routeHandler routedParameter=untrusted
return HttpResponse('ClassView get: {}'.format(untrusted)) # $HttpResponse

View File

@@ -12,4 +12,7 @@ urlpatterns = [
# line)
re_path(r"^ba[rz]/", views.bar_baz), # $routeSetup="^ba[rz]/"
url(r"^deprecated/", views.deprecated), # $routeSetup="^deprecated/"
path("basic-view-handler/", views.MyBasicViewHandler.as_view()), # $routeSetup="basic-view-handler/"
path("custom-inheritance-view-handler/", views.MyViewHandlerWithCustomInheritance.as_view()), # $routeSetup="custom-inheritance-view-handler/"
]

View File

@@ -1,10 +1,33 @@
from django.http import HttpRequest, HttpResponse
from django.views import View
from django.views.decorators.csrf import csrf_exempt
def foo(request: HttpRequest): # $routeHandler
return HttpResponse("foo") # $HttpResponse
def bar_baz(request: HttpRequest): # $routeHandler
return HttpResponse("bar_baz") # $HttpResponse
def deprecated(request: HttpRequest): # $routeHandler
return HttpResponse("deprecated") # $HttpResponse
class MyBasicViewHandler(View):
def get(self, request: HttpRequest): # $ routeHandler
return HttpResponse("MyViewHandler: GET") # $ HttpResponse
def post(self, request: HttpRequest): # $ routeHandler
return HttpResponse("MyViewHandler: POST") # $ HttpResponse
class MyCustomViewBaseClass(View):
def post(self, request: HttpRequest): # $ MISSING: routeHandler
return HttpResponse("MyCustomViewBaseClass: POST") # $ HttpResponse
class MyViewHandlerWithCustomInheritance(MyCustomViewBaseClass):
def get(self, request: HttpRequest): # $ routeHandler
return HttpResponse("MyViewHandlerWithCustomInheritance: GET") # $ HttpResponse

View File

@@ -44,7 +44,7 @@ MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',