diff options
| author | Claude Paroz <claude@2xlibre.net> | 2019-09-26 19:06:35 +0200 |
|---|---|---|
| committer | Carlton Gibson <carlton@noumenal.es> | 2020-02-18 20:03:44 +0100 |
| commit | 4d973f593932285cd2f765400d915305d8e7333a (patch) | |
| tree | 1cc48fd9e979d77906e522ecad2689d156d1377f /django/utils | |
| parent | a34cb5a6d408203f4fbdb364fc9768c026eda224 (diff) | |
Refs #26601 -- Deprecated passing None as get_response arg to middleware classes.
This is the new contract since middleware refactoring in Django 1.10.
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/decorators.py | 4 | ||||
| -rw-r--r-- | django/utils/deprecation.py | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/django/utils/decorators.py b/django/utils/decorators.py index 4dc6c18f45..bb2e498e46 100644 --- a/django/utils/decorators.py +++ b/django/utils/decorators.py @@ -113,9 +113,9 @@ def decorator_from_middleware(middleware_class): def make_middleware_decorator(middleware_class): def _make_decorator(*m_args, **m_kwargs): - middleware = middleware_class(*m_args, **m_kwargs) - def _decorator(view_func): + middleware = middleware_class(view_func, *m_args, **m_kwargs) + @wraps(view_func) def _wrapped_view(request, *args, **kwargs): if hasattr(middleware, 'process_request'): diff --git a/django/utils/deprecation.py b/django/utils/deprecation.py index 6599cd2e83..81e7c3a15b 100644 --- a/django/utils/deprecation.py +++ b/django/utils/deprecation.py @@ -80,7 +80,10 @@ class DeprecationInstanceCheck(type): class MiddlewareMixin: + # RemovedInDjango40Warning: when the deprecation ends, replace with: + # def __init__(self, get_response): def __init__(self, get_response=None): + self._get_response_none_deprecation(get_response) self.get_response = get_response super().__init__() @@ -92,3 +95,11 @@ class MiddlewareMixin: if hasattr(self, 'process_response'): response = self.process_response(request, response) return response + + def _get_response_none_deprecation(self, get_response): + if get_response is None: + warnings.warn( + 'Passing None for the middleware get_response argument is ' + 'deprecated.', + RemovedInDjango40Warning, stacklevel=3, + ) |
