2012-06-19 135 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

相關問題