2009-05-01 4 views
0

이 Genshi의 템플릿 구문 오류의 원인은 무엇입니까?

Genshi 템플릿은 다음 오류를 발생시킵니다.

TemplateSyntaxError: invalid syntax in expression "${item.error}" of "choose" directive

오류가 지정하는 템플릿 코드 부분은 다음과 같습니다 ( 'feed'는 템플릿에 전달되는 사전 목록입니다).

<item py:for="item in feed"> 
<py:choose error="${item.error}"> 
    <py:when error="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item> 

기본적으로 item.error는 '0' 또는 '1' 중 하나를 보유하고 있으며이를 기반으로 출력합니다. 나는 어디서 오류인지 알지 못한다 - 어떤 도움을 주시면 감사하겠습니다. 감사.

답변

0

필자는 Genshi를 한번도 사용해 본 적이 없지만 필자가 찾은 문서를 기반으로 템플릿 지시문 인수에 인라인 파이썬 표현 구문을 사용하려는 것처럼 보입니다. 이는 불필요한 것으로 보입니다. docs 아마도이 명확하게하지 않는

<item py:for="item in feed"> 
<py:choose error="item.error"> 
    <py:when error="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item> 
+0

감사합니다. Jorenko. 나는 실수를 깨닫고 그것을 바꿨다. 그러나 그것은 여전히 ​​효과가 없었습니다. 나는 대신에 두 가지를 사용하기로 결정했는데 효과가있었습니다. – Sam

4

하지만, (그들의 예에서와 같이) 속성 대신 errortest 호출 할 필요가 : 대신 사용해보십시오.

<item py:for="item in feed"> 
<py:choose test="item.error"> 
    <py:when test="0"> 
     <title>${item.something}</title> 
    </py:when> 
    <py:otherwise> 
     <title>${item.something}</title> 
    </py:otherwise> 
</py:choose> 
</item>