Место для принятия решений по шаблонам на ваш взгляд. Там у вас есть доступ к запросу, и вы можете динамически создавать имя шаблона в зависимости от того, какие условия вам нравятся. Например.,
def my_view(request, ...):
...
template_name = 'template.html'
if is_mobile(request): template_name = 'mobile_' + template_name
template = get_template(template_name)
context = RequestContext(request, {...})
return HttpResponse(template.render(context))
Где вы предоставляете is_mobile()
. Лучше было бы предоставить метод, который принимает запрос и имя шаблона и возвращает один соответствующим образом измененный (чтобы можно было закодировать эту логику один раз, а не разбросать по нескольким представлениям).
Вы также можете получить некоторое кредитное плечо от select_template () , который принимает список имен шаблонов-кандидатов, возвращая шаблон для первого найденного.