在Django 1.7+中,在视图中检测移动设备的推荐方法是什么?

时间:2015-10-23 18:08:29

标签: python django

我已经查看了有关此问题的其他stackoverflow帖子,但回复似乎已过时或git repos不再存在。

在Django中为1.7 +版本检测移动设备的推荐方法是什么?

作为一个用例,如果用户在移动设备上,我需要此功能来引导用户访问移动网站,否则将其引导至网站的桌面版本。

1 个答案:

答案 0 :(得分:2)

根据您是否要使用User-Agent,您可以编写一个非常简单的中间件类来执行此操作

class UserAgentMiddleware():
    def process_request(request):
        if request.META.HTTP_USER_AGENT == (MOBILE):
            do_something()
        else:
            return None

然后将其添加到您的中间件

MIDDLEWARE_CLASSES = [
     ...
     'path.to.UserAgentMiddleWare',
     ...
]

要按屏幕尺寸(设备屏幕尺寸)执行此操作,您需要编写一些javascript,然后在页面顶部使用AJAX调用重定向到移动网站。

 var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
 if (width < X) {
      window.location = window.location.protocol + "MOBILE_SITE_HERE" + window.location.pathname
 }