2013-06-26 5 views
0

J'ai le code conditionnel suivant qui, en théorie, est censé fonctionner, mais il ne vérifie pas la condition. le formulaire frappe cette condition, l'exécute et renvoie une division par 0 erreur de division au lieu d'un 0tal: condition ne vérifiant pas la condition

Im travailler avec des données incomplètes à des fins, c'est pour s'assurer que les pages d'erreur ne génèrent pas, la cellule dans la table juste montre un 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> 

Si quelqu'un a des idées, ils seraient très appréciés.

Répondre

0

Si votre attribut result.sum_adt_out est une chaîne, votre test échouera.

Notez également que <> a été déprécié en Python, utilisez plutôt != pour tester l'inégalité. Votre modèle, simplifié et en appelant float() sur la valeur d'abord pour s'assurer qu'il est numérique, devient alors:

<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> 
+0

Cela a fonctionné parfaitement. Merci beaucoup! – John

Questions connexes