У меня есть следующий CBV:
class Index(TemplateView):
template_name = 'index_app/index.html'
А также функция, которая может принимать объект запроса и возвращать, поступает ли он с мобильного устройства или нет:
def mobileBrowser(request):
mobile_browser = False
ua = request.META['HTTP_USER_AGENT'].lower()[0:4]
if (ua in mobile_uas):
mobile_browser = True
else:
for hint in mobile_ua_hints:
if request.META['HTTP_USER_AGENT'].find(hint) > 0:
mobile_browser = True
return mobile_browser
Я хочу иметь возможность использовать это, чтобы сделать что-то вроде следующего в моем CBV:
class Index(TemplateView):
if mobileBrowser(request):
template_name = 'index_app/mobile/index.html'
else:
template_name = 'index_app/index.html'
Это невозможно, поскольку CBV, похоже, не имеет доступа к объекту запроса.Есть ли способ получить доступ к этому объекту в этой ситуации?
Я знаю, что вместо этого можно было бы создать стандартное представление, но позже я бы хотел продолжить использовать CBV, такие как CreateView и еще много чего.просто снова посадите меня в ту же ситуацию.