如果type为none,请格式化jinja2模板?

时间:2016-11-05 13:11:29

标签: python flask jinja2

我正在尝试向用户显示一些信息。来自数据库中字符串的电话号码。每个客户有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>

有什么想法吗?

2 个答案:

答案 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中的所有条目都是有效的值/对象来执行此操作,您可能也想检查它。