Мне нужно перенаправить пользователя только один раз, в зависимости от агента пользователя.
В 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 перенаправляет пользователя на мобильную версию страницы каждый раз.время.Но пользователь должен иметь возможность перейти на настольную версию сайта.Как это исправить?
Спасибо за ваше время и помощь.