Ваш первый пример - это пример промежуточного программного обеспечения нового стиля, а второй - пример промежуточного программного обеспечения старого стиля.Если вы все еще хотите использовать process_response(request, response)
в промежуточном программном обеспечении нового стиля, вы должны использовать класс django.utils.deprecation.MiddlewareMixin
как родительский класс вашего класса промежуточного программного обеспечения.
from django.utils.deprecation import MiddlewareMixin
# old-style middleware usage in new versions of django
class TenantMiddleware(MiddlewareMixin):
def process_response(self, request, response):
set_tenant_schema_for_request(request)
return response
Если вы используете промежуточное программное обеспечение нового стиля ,,,
# new-style middleware usage and explanation
class TenantMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# implement process_request(request) logic here
response = self.get_response(request)
# implement process_response(request, response) logic here
return response # returns HttpResponse or subclasses here.
В промежуточном программном обеспечении нового стиля код до self.get_response(request)
совпадает с process_request(request)
, а код после self.get_response(request)
совпадает с process_response(request, response)
.
Надеюсь, это поможет вам.