42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from django.http import HttpResponse, StreamingHttpResponse
|
|
from django.urls import reverse
|
|
from django.utils.deprecation import MiddlewareMixin
|
|
|
|
from . import urlconf_inner
|
|
|
|
|
|
class ChangeURLconfMiddleware(MiddlewareMixin):
|
|
def process_request(self, request):
|
|
request.urlconf = urlconf_inner.__name__
|
|
|
|
|
|
class NullChangeURLconfMiddleware(MiddlewareMixin):
|
|
def process_request(self, request):
|
|
request.urlconf = None
|
|
|
|
|
|
class ReverseInnerInResponseMiddleware(MiddlewareMixin):
|
|
def process_response(self, *args, **kwargs):
|
|
return HttpResponse(reverse("inner"))
|
|
|
|
|
|
class ReverseOuterInResponseMiddleware(MiddlewareMixin):
|
|
def process_response(self, *args, **kwargs):
|
|
return HttpResponse(reverse("outer"))
|
|
|
|
|
|
class ReverseInnerInStreaming(MiddlewareMixin):
|
|
def process_view(self, *args, **kwargs):
|
|
def stream():
|
|
yield reverse("inner")
|
|
|
|
return StreamingHttpResponse(stream())
|
|
|
|
|
|
class ReverseOuterInStreaming(MiddlewareMixin):
|
|
def process_view(self, *args, **kwargs):
|
|
def stream():
|
|
yield reverse("outer")
|
|
|
|
return StreamingHttpResponse(stream())
|