Джанго перенаправить пользователя только один раз в сеансе - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно перенаправить пользователя только один раз, в зависимости от агента пользователя.

В middleware.py у меня есть:

class UserAgentDetectMiddleware(object):

    def __init__(self, get_response=None):
        if get_response is not None:
            self.get_response = get_response

    def __call__(self, request):
        self.process_request(request)
        return self.get_response(request)

    def process_request(self, request):
        request.user_agent = SimpleLazyObject(lambda: get_user_agent(request))
        if request.user_agent.is_pc:
            request.template_prefix = ''
        else:
            request.template_prefix = 'mobile_'

в views.py:

class UserAgentIndexView(TemplateView):
    template_name = 'index.html'

    def get_template_names(self):
        try:
            template_name = os.path.join(self.request.template_prefix + 'index.html')
        except TemplateDoesNotExist:
            template_name = 'index.html'
        return [template_name]

    def get_context_data(self, **kwargs):
        ...

    def render_to_response(self, context, **response_kwargs):
        ...

Итак, если пользовательское устройство - это ПК, template_name - это index.html, в противном случае это mobile_index.html.

Но теперь, если пользовательское устройство мобильно, django перенаправляет пользователя на мобильную версию страницы каждый раз.время.Но пользователь должен иметь возможность перейти на настольную версию сайта.Как это исправить?

Спасибо за ваше время и помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...