我正在使用django和python 3.7。我想在移动浏览器上显示一些表略有不同的表格数据,因此我格式化了表观图模板:
{% if request.user_agent.is_mobile %}
<td align="center"><a href="{{ articlestat.article.mobile_path }}" target="_blank">{{ articlestat.hits|floatformat:"0" }}</a></td>
{% else %}
<td align="center"><h2><a href="{{ articlestat.article.path }}" target="_blank">{{ articlestat.hits|floatformat:"0" }}</a></h2></td>
{% endif %}
但是,在部署和重新启动我的服务器后,在移动浏览器上查看此服务器仍然显示非移动分支。我还需要做其他事情来激活移动检测吗?我的手机是Android LG,如果很重要,请在Chrome浏览器上查看。
编辑:我正在使用" django-user-agents"扩展名,在此处找到-https://github.com/selwin/django-user_agents。实际上,我对任何可以准确检测移动浏览器的解决方案开放,这恰好是Google上出现的第一个Taht。
您是否尝试过模板过滤器?您可以通过执行以下操作来使用它们:
{% load user_agents %}
{% if request|is_mobile %}
Mobile device stuff...
{% endif %}
否则,您应该尝试将{{ request|is_mobile }}
输入模板并查看输出的内容。
您拥有的另一个选项是使用CSS来定位divs
,并根据屏幕尺寸隐藏/显示它们。这不是准确的,但是它是高度可定制的。示例:
html
<td class="td-desktop" align="center"><h2><a href="{{ articlestat.article.path }}" target="_blank">{{ articlestat.hits|floatformat:"0" }}</a></h2></td>
<td class="td-mobile" align="center"><a href="{{ articlestat.article.mobile_path }}" target="_blank">{{ articlestat.hits|floatformat:"0" }}</a></td>
CSS
.td-mobile {
display: none;
}
@media (max-width:768px) {
.td-desktop {
display: none;
}
.td-mobile {
display: block;
}
}