我正在尝试向用户显示一些信息。来自数据库中字符串的电话号码。每个客户有3个电话号码,小区,家庭,其他。将至少填写一个,但其他人可以为空。
当我格式化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>
有什么想法吗?
答案 0 :(得分:1)
怎么样
{% if entry.homeNum %}{{ entry.homeNum }}{% endif %}
使用前测试数据。
答案 1 :(得分:1)
Jinja可以显示无类型为&#34;无&#34;。所以这不应该成为问题。
问题很可能是这部分:
{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}
如果cellNum
为无或未定义等,则在尝试引用该值时无效。所以先在cellNum
上调用if。
{% if entry.cellNum %}{{ "%s-%s-%s" | format(entry.cellNum[0:3], entry.cellNum[3:6], entry.cellNum[6:10]) }}{% endif %}
此外,我假设results
中的所有条目都是有效的值/对象来执行此操作,您可能也想检查它。