Получение шаблона для мобильного или настольного компьютера с помощью промежуточного ПО django [duplicate]

У меня есть этот фрагмент кода, который определяет, идет ли запрос с мобильного или с настольного компьютера https://stackoverflow.com/a/42280964/492293

import re

def mobile(request):
"""Return True if the request comes from a mobile device."""

    MOBILE_AGENT_RE=re.compile(r".*(iphone|mobile|androidtouch)",re.IGNORECASE)

    if MOBILE_AGENT_RE.match(request.META['HTTP_USER_AGENT']):
        return True
    else:
        return False


def myfunction(request):

    ...
    if mobile(request):
        is_mobile = True
    else:
        is_mobile = False

    context = {
        ... ,
        'is_mobile': is_mobile,
    }
    return render(request, 'mytemplate.html', context)

В моем случае у меня есть два одинаково названных шаблона services.html, например, в этом представлении

from django.http import HttpResponse
from django.template import loader

def index(request):
  template = loader.get_template('services.html')
  return HttpResponse(template.render())

В моих каталогах есть mobile/services.html и desktop/services.html

Я хотел бы показывать мобильный шаблон, если запрос поступает с мобильного устройства, и другой шаблон, если запрос поступает с настольного компьютера.

Я посмотрел на это промежуточное ПО django https://docs.djangoproject.com/en/4.0/topics/http/middleware/#process-view

, который запускается до того, как django вызовет представление. Как я могу добавить функциональность к нему, чтобы сказать django, что нужно сделать префикс mobile или desktop к loader.get_template('services.html') на основе обнаруженного отправителя запроса (web или desktop)?

Вернуться на верх