К нашему сайту можно получить доступ из полнофункционального браузера, из мобильных браузеров и из пользовательского приложения для iPhone.Поскольку логика в основном одинакова независимо от клиента, мы используем одни и те же представления для обработки всех типов запросов.Но в нижней части каждого из наших представлений есть что-то вроде:
if request.is_mobile():
return render_to_response('foo/bar/baz_mobile.html', context)
elif request.is_api():
return json.dumps(context)
else:
return render_to_response('foo/bar/baz.html', context)
Очевидно, что есть лучший способ сделать это:)
Я думал о том, чтобы просто иметь наши представлениявернуть контекстный словарь и обернуть их в декоратор, который определяет, как отобразить ответ.В качестве альтернативы, возможно, я могу что-то сделать с представлениями на основе классов.
Как бы вы это сделали?