我试图弄清楚如何使用塔和python检查模板上下文中是否存在变量。我要做的是:

我有一个塔布局模板。这应包含一个消息部分,并且只有当变量 c.messages 存在于上下文中。消息部分看起来像这样:

<div py:if="len(c.messages) > 0">
  <py:for each="msg in c.messages">
    <strong>${msg}</strong>
  </py:for>
</div>

如果控制器未定义C.Messages,则会产生错误。因此,我只想在定义变量时才包括此内容。有解决这个问题的解决方案吗?

有帮助吗?

解决方案

Genshi有一个定义的JUT方法

如果定义(消息):

http://genshi.edgewall.org/wiki/documentation/templates.html#defined-name

其他提示

将测试变成 hasattr(c, 'messages') and len(c.messages) > 0 ..或简单地将消息设置为[

我很欣赏我正在挖一个旧线程,但是还有其他解决方案。

我一直在努力定义()正常工作。我发现的最有效的解决方案是将以下内容用于列表:

py:if="myobject.thelist.get('blah',0) == 0"

Genshi中的基本python-如果不确定,我们给它一个默认值。如果您需要确保默认值不会污染您的数据,请返回以外的其他内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top