mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	[3.0.x] Refs #26601 -- Used new-style middlewares in documentation.
Backport of d71497bb24 from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							6b7bd079a6
						
					
				
				
					commit
					1319124aa9
				
			| @@ -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, | ||||
|   | ||||
| @@ -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:: | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user