0

我有以下 tal 条件代码,理论上应该可以工作,但它没有执行条件检查。表单遇到此条件,运行它,然后返回除以 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>

如果有人有任何想法,他们将不胜感激。

4

1 回答 1

0

如果您的result.sum_adt_out属性是string,您的测试将失败。

另请注意,<>在 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>
于 2013-06-26T17:39:03.800 回答