From 1319124aa9b997cb73cc6e8097f9d34e771d1867 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Tue, 24 Sep 2019 09:58:17 +0200 Subject: [PATCH] [3.0.x] Refs #26601 -- Used new-style middlewares in documentation. Backport of d71497bb249a2c3ffec41e99089f5ae8e575f2d3 from master --- docs/ref/request-response.txt | 10 ++++++---- docs/topics/i18n/timezones.txt | 9 ++++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt index 3dfbf28cf6..26b5b340a2 100644 --- a/docs/ref/request-response.txt +++ b/docs/ref/request-response.txt @@ -288,16 +288,17 @@ Methods behind multiple proxies. One solution is to use middleware to rewrite the proxy headers, as in the following example:: - from django.utils.deprecation import MiddlewareMixin - - class MultipleProxyMiddleware(MiddlewareMixin): + class MultipleProxyMiddleware: FORWARDED_FOR_FIELDS = [ 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED_HOST', 'HTTP_X_FORWARDED_SERVER', ] - def process_request(self, request): + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): """ Rewrites the proxy headers so that only the most recent proxy is used. @@ -307,6 +308,7 @@ Methods if ',' in request.META[field]: parts = request.META[field].split(',') request.META[field] = parts[-1].strip() + return self.get_response(request) This middleware should be positioned before any other middleware that relies on the value of :meth:`~HttpRequest.get_host()` -- for instance, diff --git a/docs/topics/i18n/timezones.txt b/docs/topics/i18n/timezones.txt index c8a586a603..cc357137a6 100644 --- a/docs/topics/i18n/timezones.txt +++ b/docs/topics/i18n/timezones.txt @@ -169,15 +169,18 @@ Add the following middleware to :setting:`MIDDLEWARE`:: import pytz from django.utils import timezone - from django.utils.deprecation import MiddlewareMixin - class TimezoneMiddleware(MiddlewareMixin): - def process_request(self, request): + class TimezoneMiddleware: + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): tzname = request.session.get('django_timezone') if tzname: timezone.activate(pytz.timezone(tzname)) else: timezone.deactivate() + return self.get_response(request) Create a view that can set the current timezone::