Я сделал сайт Django, но я выпил Koolaid и хочу сделать версию IPhone . После долгих размышлений я придумал два варианта:
- Создайте целый другой сайт, например, i.xxxx.com. Свяжите его с той же базой данных, используя структуру сайтов Django.
- Найдите некоторое время промежуточного программного обеспечения, которое читает пользовательский агент и динамически меняет каталоги шаблонов.
Однако я бы предпочел вариант № 2; У меня есть некоторые оговорки, в основном потому, что документация Django не рекомендует изменять настройки на лету . Я нашел фрагмент , который бы делал то, что я хотел. Моя главная проблема - сделать его как можно более плавным, я бы хотел, чтобы он был автоматическим и прозрачным для пользователя.
Кто-нибудь еще сталкивался с такой же проблемой? Кто-нибудь захочет рассказать о том, как они взялись за создание версий Django для IPhone?
Обновление
Я пошел с сочетанием промежуточного программного обеспечения и настройки вызова шаблона.
Для промежуточного программного обеспечения я использовал minidetector . Мне это нравится, потому что он обнаруживает множество мобильных пользовательских агентов. Все, что мне нужно сделать, это проверить request.mobile в моих взглядах.
Для шаблона вызовите твик:
def check_mobile(request, template_name):
if request.mobile:
return 'mobile-%s'%template_name
return template_name
Я использую это для любого представления, которое я знаю, у меня есть обе версии.
TODO:
- Узнайте, как получить доступ к request.mobile в расширенной версии render_to_response, поэтому мне не нужно использовать check_mobile ('template_name.html')
- Использование предыдущего автоматического возврата к обычному шаблону, если мобильной версии не существует.