[英]Format jinja2 template if type is none?
我正在尝试向用户显示一些信息。 来自数据库中字符串的电话号码。 每个客户都有3个电话号码,手机,家和其他。 至少要填写一个,但其他可以为null。
当我在Jinja中格式化数字时,出现None类型的错误。 如果值为None,是否有跳过格式的问题? 这是代码。
{% for entry in results %}
<div class="panel-heading">{{ entry.firstName }} {{ entry.lastName }}</div>
<div class="panel-body">
<li>Email: {{ entry.email }}</li>
<li>Cell Phone: {{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}</li>
<li>Home Phone: {{ entry.homeNum }}</li>
<li>Other Phone: {{ entry.otherNum }}</li>
<br>
<form action="#" method="post" class="sky-form">
<input type="hidden" value="{{ entry.id }}" name="firstname">
<button type="submit" class="button">Select Client</button>
</form>
有什么想法吗?
怎么样
{% if entry.homeNum %}{{ entry.homeNum }}{% endif %}
使用前测试数据。
Jinja可以将None类型显示为“ None”。 因此,这不应该成为问题。
问题很可能是以下部分:
{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}
如果cellNum
为None或未定义等,则它将无法正常工作,因为它尝试引用该值。 因此, cellNum
在cellNum
上调用if。
{% if entry.cellNum %}{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}{% endif %}
另外,我假设results
中的所有条目都是要执行此操作的有效值/对象,您可能也要检查一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.