Detect mobile, tablet or Desktop on Django Detect mobile, tablet or Desktop on Django django django

Detect mobile, tablet or Desktop on Django


Based on your prior use of mobile detection middleware, I'd recommend the following:

Pick up the Python port of MobileESP (source code here) and drop it into a folder named mobileesp in the base of your project (where manage.py is). Throw in a blank __init__.py file so that Python will see it as a package.

Go ahead and create a new file, middleware.py, in that directory, and fill it with:

import refrom mobileesp import mdetectclass MobileDetectionMiddleware(object):    """    Useful middleware to detect if the user is    on a mobile device.    """    def process_request(self, request):        is_mobile = False        is_tablet = False        is_phone = False        user_agent = request.META.get("HTTP_USER_AGENT")        http_accept = request.META.get("HTTP_ACCEPT")        if user_agent and http_accept:            agent = mdetect.UAgentInfo(userAgent=user_agent, httpAccept=http_accept)            is_tablet = agent.detectTierTablet()            is_phone = agent.detectTierIphone()            is_mobile = is_tablet or is_phone or agent.detectMobileQuick()        request.is_mobile = is_mobile        request.is_tablet = is_tablet        request.is_phone = is_phone

Lastly, make sure to include 'mobileesp.middleware.MobileDetectionMiddleware', in MIDDLEWARE_CLASSES in your settings file.

With that in place, in your views (or anywhere that you have a request object) you can check for is_phone (for any modern smartphones), is_tablet (for modern tablets) or is_mobile (for any mobile devices whatsoever).


Have a look at MobileESP. It has been recently ported to Python for Django web app framework. It can detect various classes and tiers of devices (including smatphones, tablets).


If you want some quick and simple solution, you can try handset detection's javascript that enables you create simple redirection rules.