Pergunta

Eu tenho um aplicativo da web escrito no Django que possui uma página específica que gostaria de implementar uma versão móvel do modelo (e lógica ligeiramente diferente) para a qual. Eu gostaria de poder implementá -lo como este código 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)

Eu não tenho muito tempo e estou muito cedo na minha curva de aprendizado de codificação :) - Encontrei o que parece ser um aplicativo flugable muito poderoso chamado Bloom para obter capacidades de dispositivo móvel - http://code.google.com/p/django-bloom/wiki/bloomdeviceNo entanto, parece fazer uma solicitação via JSON para obter muitas especificações de dispositivo que eu não preciso, o que me parece um pouco ineficiente.

Alguém tem um método mais simples sugerido? Minha detecção não precisa ser 100%, apenas dispositivos para iPhone, iPod, Android e mainstream ...

A string http_user_agent tem algum tipo de sinalização móvel que eu posso verificar?

Foi útil?

Solução

Atualizar:

Acabei de encontrar: http://code.google.com/p/minidetector/

O que parece fazer exatamente o que eu quero, vou testar agora. Sinta -se à vontade para me dizer que estou errado!

Outras dicas

Melhor prática: Use Minidetector Para adicionar as informações extras à solicitação, use o contexto de solicitação incorporado do Django para transmiti -la aos seus modelos assim.

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))

Então, em seu modelo, você pode apresentar coisas como:

<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>

Vá para o garfo de MinideteCor chamado Django-Mobi, inclui documentação sobre como usá-lo.

https://pypi.python.org/pypi/django-mobi

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top