Stop using django.util.deprecation.MiddlewareMixin

That class is intended primarily for compatibility with Pre-1.10
middleware, and recently gained a check that get_response is not None.
This package ensures an unexpecified `get_response` function is never
called on its own, so it's simplest to manually implement the middleware
API.
This commit is contained in:
Peter Marheine 2021-12-23 11:22:52 +11:00
parent 2524668e86
commit 0ab8aa3e8f

View file

@ -14,14 +14,6 @@ from django.core.exceptions import ImproperlyConfigured
from django_downloadview.response import DownloadResponse
from django_downloadview.utils import import_member
try:
from django.utils.deprecation import MiddlewareMixin
except ImportError:
class MiddlewareMixin(object):
def __init__(self, get_response=None):
super(MiddlewareMixin, self).__init__()
#: Sentinel value to detect whether configuration is to be loaded from Django
#: settings or not.
@ -38,12 +30,18 @@ def is_download_response(response):
return isinstance(response, DownloadResponse)
class BaseDownloadMiddleware(MiddlewareMixin):
class BaseDownloadMiddleware:
"""Base (abstract) Django middleware that handles download responses.
Subclasses **must** implement :py:meth:`process_download_response` method.
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return self.process_response(request, response)
def is_download_response(self, response):
"""Return True if ``response`` can be considered as a file download.