# -*- coding: utf-8 -*- from django.utils.functional import SimpleLazyObject def _get_full_base_url(request): if not hasattr(request, '_cached_full_base_url'): scheme = u'https' if request.is_secure() else u'http' request._cached_full_base_url = u'%s://%s' % (scheme, request.get_host()) return request._cached_full_base_url class FullBaseUrlMiddleware(object): def process_request(self, request): request.full_base_url = SimpleLazyObject(lambda: _get_full_base_url(request))