我有以下的条件代码,理论上应该可以工作,但它没有执行条件检查。表单达到此条件,运行它然后返回除以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>
如果有人有任何想法,他们将非常感激。
答案 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>