变色龙ZPT模板

1 投票
2 回答
1148 浏览
提问于 2025-04-17 10:11

我创建了一个 .pt 模板,里面包含了以下代码片段:

<span class="help-block">
   ${password_confirm}
</span>

我的问题是,密码确认字段在 pyramid 框架中并不是总会显示,所以会出现下面的错误:

chameleon.utils.NameError

NameError: password_confirm

我知道我应该使用 tal:condition,但我尝试的所有方法都没有成功。有人能帮我一下吗?我该如何处理那些不一定会在模板中显示的变量呢?

2 个回答

3

你可以在标签中加上tal:on-error="nothing"。这样,如果出现错误,整个就不会被显示出来。

<span class="help-block" tal:on-error="nothing">
   ${password_confirm}
</span>

你也可以用其他的东西来代替“nothing”。

更新:这种方法一般不太推荐,但在某些情况下可能是最简单的选择。

更新2:还有另一种变体(没有和Chameleon进行检查)

<span class="help-block" tal:condition="password_confirm|nothing">
   ${password_confirm}
</span>
6
<span class="help-block" tal:condition="exists:password_confirm">
   ${password_confirm}
</span>

应该可以工作

撰写回答