Beispiel #1
0
    def process_request(self, request: Request):
        # No locale for static media
        # This avoids touching user session, which means we avoid
        # setting `Vary: Cookie` as a response header which will
        # break HTTP caching entirely.
        self.__skip_caching = request.path_info.startswith(settings.ANONYMOUS_STATIC_PREFIXES)
        if self.__skip_caching:
            return

        safe_execute(self.load_user_conf, request, _with_transaction=False)

        lang_code = request.GET.get("lang")
        # user is explicitly forcing language
        if lang_code:
            try:
                language = _trans.get_supported_language_variant(lang_code)
            except LookupError:
                super().process_request(request)
            else:
                _trans.activate(language)
                request.LANGUAGE_CODE = _trans.get_language()
        else:
            super().process_request(request)