在Django的模板中,如果碰到值为None
的变量,在前端页面渲染时,会显示None
。我们的期望是不显示任何字符。
网上有很多资料都是关于Jinja2的,而Django默认使用DjangoTemplate,虽然两者语法相差不大,但是直接使用还是有问题。
通过查找Django提供的base_site.html,我找到了如何设置默认值的方法。
需求
如在模板中有 ,当
user
的值为None
,前段页面就会显示None
。我们希望对这个区域不显示。
Django使用的默认模板系统为DjangoTemplate
,当然也可以很方便的切换为Jinjia2(文档
解决方案
一种解决方案是先判断其值是否存在:1
2
3{% if user %}
{{ user }}
{% endif %}
但如果内容多的话,这样写就很麻烦。更好的办法是利用default
过滤器。1
{{ user|default:_('') }}