为什么在我的 Django 模板中没有启用移动检测?



我正在使用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;
    }
}

相关内容

  • 没有找到相关文章

最新更新