2012-06-19 4 views
1

plone을 사용 중이며 페이지 템플릿에 양식 결과를 표시하려고합니다.Tal 조건은 항상 false로 평가됩니다.

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으로 바꾼 경우 True 또는 False이 인쇄되므로 결과가 올바른지 확인할 수 있습니다.

누구든지이 문제에 대해 도움을 줄 수 있습니까? tal:condition은 항상 false를 평가합니까?

+0

결과/위치가 실제로 값을 반환하는지 확신합니까? – vangheem

답변

3

나는 이것이 정상적으로 작동 할 것으로 기대하고 있기 때문에, 뭔가 다른 것이 틀림 없습니다.

당신 같은 파이썬 표현은 평범한 것입니다. 그들이 정상적으로 작동하는 것을 나타내는 severalexamplesontheinternet이 있습니다.

tal:replace="python:repr(view.teams)"tal:replace="python:repr(result.team_id)" 문과 같은 값을 디버깅하여 데이터 구조가 100 % 확실한 지 확인하십시오.

+1

도와 주셔서 감사합니다. 내가 제안한대로 디버깅을 시도한 다음 오류가 발생했다.'view_teams'는 정수 배열이고'team_id'는 문자열입니다. 그냥'team_id'를 던지면 완벽하게 작동하기 시작합니다. – Ander2

관련 문제