基于用户代理的Django中间件重定向

时间:2019-01-24 18:09:15

标签: django python-3.x django-views

我正在尝试基于用户代理进行重定向。 现在我在views.py中:

class IndexRedirectView(RedirectView):

    def get_redirect_url(self, *args, **kwargs):
        user_agent = get_user_agent(self.request)
        if user_agent.is_pc:
            return reverse_lazy("main:index")
        else:
            return reverse_lazy("main:mobile_index")

我仅在主页上检查用户代理,但是我需要在任何页面(例如,对于任何文章页面)上执行此操作,并将用户重定向到网站的桌面版或移动版。

如何正确执行?也许是这样编写自己的中间件:

class UserAgentMiddleware(object):

    def process_request(self, request):
        if user_agent.is_pc:
            HttpResponseRedirect('desktop version')
        else:
            HttpResponseRedirect('mobile version')

感谢您的帮助和时间!

0 个答案:

没有答案