Django模板系统中显示`None`为空白字符


在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:_('') }}

参考资料

0%