【发布时间】:2016-09-02 03:58:22
【问题描述】:
我正在将 Django 1.9 与 Python 2.7 结合使用,我试图让我的应用程序识别用户是否正在使用移动设备浏览。我已经尝试过 django_mobile 但对于 django 1.9 来说似乎已经过时了,因为甚至没有 template_loaders 来安装应用程序,我错了吗?
【问题讨论】:
标签: python django mobile django-1.9
我正在将 Django 1.9 与 Python 2.7 结合使用,我试图让我的应用程序识别用户是否正在使用移动设备浏览。我已经尝试过 django_mobile 但对于 django 1.9 来说似乎已经过时了,因为甚至没有 template_loaders 来安装应用程序,我错了吗?
【问题讨论】:
标签: python django mobile django-1.9
尝试提取用户代理字符串
request.META['HTTP_USER_AGENT']
然后使用this library 解析该字符串。
示例
from user_agents import parse
ua_string = request.META['HTTP_USER_AGENT']
user_agent = parse(ua_string)
if user_agent.is_mobile:
...
【讨论】:
或者您可以使用django-user_agents 应用程序。真的很好。您还可以在模板中获得上下文 - 其中对于根据设备呈现某些广告很重要
在视图中
request.user_agent.is_mobile
或在模板中
{% if request.user_agent.is_mobile %}
Do stuff here...
{% endif %}
【讨论】:
是的,你有点不对。要使用Django 1.9 安装django_mobile,您应该更新设置(我在following PR 中对此进行了描述,尚未合并)。对我来说效果很好。
确切地说,您应该在TEMPLATES 字典中将TEMPLATE_LOADERS 替换为loaders,并将TEMPLATE_CONTEXT_PROCESSORS 替换为context_processors。有关模板选项的更多信息,read the docs.
【讨论】: