我有以下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>如果任何人有任何想法,他们将不胜感激。
发布于 2013-06-27 01:39:04
如果你的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>https://stackoverflow.com/questions/17325531
复制相似问题