tal:条件不执行条件检查

时间:2013-06-26 16:26:47

标签: python zope template-tal zpt

我有以下的条件代码,理论上应该可以工作,但它没有执行条件检查。表单达到此条件,运行它然后返回除以0除法错误而不是0

我正在处理不完整的数据,这是为了确保错误页面不会生成,表格中的单元格只显示0。

<td style="text-align: right;">
        <span tal:condition="python:result.sum_adt_out<>0">
               <span tal:replace="python:'%.1f'%((float(result.sum_cenmn) or 0)/float(result.sum_adt_out))">currentindex</span></span>

        <span tal:condition="python:result.sum_adt_out==0">
               <span tal:replace="python:'%.1f'%(0.0)"></span></span>
</td>

如果有人有任何想法,他们将非常感激。

1 个答案:

答案 0 :(得分:0)

如果您的result.sum_adt_out属性是字符串,则您的测试将失败。

另请注意,<>已在Python中弃用,而是使用!=来测试不等式。您的模板已经简化,并且首先在值上调用float()以确保它是数字,然后变为:

<td style="text-align: right;" tal:define="sum_adt_out python:float(result.sum_adt_out)">
    <span tal:condition="sum_adt_out"
          tal:content="python:'%.1f' % (float(result.sum_cenmn)/sum_adt_out,)">currentindex</span>

    <span tal:condition="not:sum_adt_out">0.0</span>

</td>