Ich verwende Django 1.9 mit Python 2.7 und versuche, dass meine App erkennt, wenn der Benutzer mit einem mobilen Gerät surft. Ich habe versucht, django_mobile, aber es scheint für django 1.9 veraltet, weil es nicht einmal template_loaders, um die App zu installieren, bin ich falsch daran?Wie überprüfe ich, ob ein Benutzer ein mobiles Gerät in Django 1.9 verwendet?
Antwort
Versuchen Sie, die User-Agent-String mit
request.META['HTTP_USER_AGENT']
Extrahieren und dann this library Verwendung dieser Zeichenfolge zu analysieren.
Beispiel
from user_agents import parse
ua_string = request.META['HTTP_USER_AGENT']
user_agent = parse(ua_string)
if user_agent.is_mobile:
...
oder Sie django-user_agents App nutzen können. wirklich gut. Sie auch den Kontext, in Ihrer Vorlage erhalten - unter anderem wichtig für einige Anzeigen-Rendering auf dem Gerät abhängig
im Blick
request.user_agent.is_mobile
oder in Vorlage
{% if request.user_agent.is_mobile %}
Do stuff here...
{% endif %}
Ja, Sie sind ein bisschen falsch. Um django_mobile
mit Django 1.9
zu installieren, sollten Sie Einstellungen aktualisieren (ich habe dies in der following PR beschrieben, noch nicht zusammengeführt). Es funktioniert gut für mich.
Genau, sollten Sie TEMPLATE_LOADERS
mit loaders
und TEMPLATE_CONTEXT_PROCESSORS
mit context_processors
in TEMPLATES
Wörterbuch ersetzen. Weitere Informationen zu Vorlagenoptionen finden Sie unter read the docs.