Django模板中如何在双大括号内嵌套双大括号使用default_if_none?
Django模板变量默认值渲染实现方案
错误原因
你的写法不符合Django模板语法规范:
- 不允许在
{{ }}变量标签内部嵌套另一层{{ }}标签 - 过滤器参数为变量时,不需要用引号包裹,引号包裹的内容会被识别为固定字符串
正确代码
直接将目标变量作为参数传入default_if_none过滤器即可:
<p><i class="fas fa-print mr-3"></i>{{ contact.phone2|default_if_none:contact.phone }}</p>
补充说明
- 如果需要同时适配
contact.phone2为None或空字符串的场景,可替换为default过滤器:{{ contact.phone2|default:contact.phone }} - 仅当过滤器参数是固定文本时才需要用引号包裹,示例:
{{ contact.phone2|default_if_none:"暂无联系电话" }}
内容的提问来源于stack exchange,提问作者Zahidul Islam
相关产品推荐
相关产品推荐

