Ответ 1
Update:
Я только что нашел: http://code.google.com/p/minidetector/
Что, кажется, делает именно то, что я хочу, сейчас я собираюсь протестировать. Не стесняйтесь сказать мне, что я неправ!
У меня есть веб-приложение, написанное в Django, у которого есть одна конкретная страница, на которой я бы хотел реализовать мобильную версию шаблона (и немного другую логику). Я бы хотел реализовать этот код sudo:
def(myView)
do some stuff
if user-is-on-a-mobile-device:
do some stuff
return (my mobile template)
else:
do some stuff
return (my normal template)
У меня нет большого количества времени, и я довольно рано нахожусь в моей кривой обучения кодированию:) - Я нашел то, что выглядит очень мощным подключаемым приложением, называемым цветком для получения возможностей мобильных устройств - http://code.google.com/p/django-bloom/wiki/BloomDevice Однако, похоже, запрос через JSON позволяет получить множество спецификаций устройств, которые мне не нужны, что для меня немного неэффективно.
Есть ли у кого-нибудь более простой метод? Мое обнаружение не обязательно должно быть на 100%, просто iPhone, iPod, android и основные устройства...
Имеет ли строка http_user_agent какой-либо мобильный флаг, который я могу проверить?
Update:
Я только что нашел: http://code.google.com/p/minidetector/
Что, кажется, делает именно то, что я хочу, сейчас я собираюсь протестировать. Не стесняйтесь сказать мне, что я неправ!
передовая практика: используйте minidetector, чтобы добавить дополнительную информацию к запросу, а затем используйте построенный в контексте запросов django, чтобы передать его таким шаблонам.
from django.shortcuts import render_to_response
from django.template import RequestContext
def my_view_on_mobile_and_desktop(request)
.....
render_to_response('regular_template.html',
{'my vars to template':vars},
context_instance=RequestContext(request))
то в вашем шаблоне вы сможете ввести такие вещи, как:
<html>
<head>
{% block head %}
<title>blah</title>
{% if request.mobile %}
<link rel="stylesheet" href="{{ MEDIA_URL }}/styles/base-mobile.css">
{% else %}
<link rel="stylesheet" href="{{ MEDIA_URL }}/styles/base-desktop.css">
{% endif %}
</head>
<body>
<div id="navigation">
{% include "_navigation.html" %}
</div>
{% if not request.mobile %}
<div id="sidebar">
<p> sidebar content not fit for mobile </p>
</div>
{% endif %>
<div id="content">
<article>
{% if not request.mobile %}
<aside>
<p> aside content </p>
</aside>
{% endif %}
<p> article content </p>
</aricle>
</div>
</body>
</html>
перейти для вилки минидетектора под названием django-mobi, он содержит документацию о том, как его использовать.