Detect mobile browser (not just iPhone) in python view
Update:
I just found: http://code.google.com/p/minidetector/
Which seems to do exactly what I want, I'm going to test now. Feel free to tell me i'm wrong!
best practice: use minidetector to add the extra info to the request, then use django's built in request context to pass it to your templates like so.
from django.shortcuts import render_to_responsefrom django.template import RequestContextdef my_view_on_mobile_and_desktop(request) ..... render_to_response('regular_template.html', {'my vars to template':vars}, context_instance=RequestContext(request))
then in your template you are able to introduce stuff like:
<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>
go for the fork of minidetecor called django-mobi, it includes documentation on how to use it.