middleware.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.http import HttpResponse, StreamingHttpResponse
  2. from django.urls import reverse
  3. from django.utils.deprecation import MiddlewareMixin
  4. from . import urlconf_inner
  5. class ChangeURLconfMiddleware(MiddlewareMixin):
  6. def process_request(self, request):
  7. request.urlconf = urlconf_inner.__name__
  8. class NullChangeURLconfMiddleware(MiddlewareMixin):
  9. def process_request(self, request):
  10. request.urlconf = None
  11. class ReverseInnerInResponseMiddleware(MiddlewareMixin):
  12. def process_response(self, *args, **kwargs):
  13. return HttpResponse(reverse('inner'))
  14. class ReverseOuterInResponseMiddleware(MiddlewareMixin):
  15. def process_response(self, *args, **kwargs):
  16. return HttpResponse(reverse('outer'))
  17. class ReverseInnerInStreaming(MiddlewareMixin):
  18. def process_view(self, *args, **kwargs):
  19. def stream():
  20. yield reverse('inner')
  21. return StreamingHttpResponse(stream())
  22. class ReverseOuterInStreaming(MiddlewareMixin):
  23. def process_view(self, *args, **kwargs):
  24. def stream():
  25. yield reverse('outer')
  26. return StreamingHttpResponse(stream())