2012-06-19 66 views
1

我正在使用plone并尝试在页面模板中显示表单结果。Tal条件总是评估为false

我想用一个python表达式使用tal:condition过滤一些数据库结果,但它总是计算为false。

的代码看起来是这样的:

<tr tal:repeat="result view/results"> 
    <td> <span tal:condition="python:view.teams[0]==result.team_id" tal:replace="result/position">Position</span></td> 
    <td> <span tal:condition="python:view.teams[1]==result.team_id" tal:replace="result/position">Position</span></td> 
</tr> 

我想要的表格单元格填充队中的地位,当球队ID的结果一致,但这些细胞始终是空的。 如果我从span中删除tal:condition并用tal:replace=python:view.teams[0]==result.team_id替换tal:replace="result/position",则会打印TrueFalse,以便我可以检查结果是否正确。

任何人都可以帮我解决这个问题吗?为什么tal:condition总是评估错误?

+0

你确定结果/位置实际返回一个值吗? – vangheem

回答

3

我完全期待这个工作,所以别的东西一定是错的。如你的Python表达式很常见;有severalexamplesontheinternet显示他们通常工作。

尝试使用tal:replace="python:repr(view.teams)"tal:replace="python:repr(result.team_id)"语句对数值进行进一步的调试,并且类似于100%确定您的数据结构的外观。

+1

感谢您的帮助。我试着按照你的建议尝试调试,然后我意识到错误:view.teams是一个整型数组,而'team_id'是一个字符串。只要施放'team_id',然后它开始工作完美。 – Ander2