2009-05-01 62 views
0

甲元史模板引發以下錯誤:是什麼導致Genshi的模板語法錯誤?

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

該錯誤指定爲以下(「進料」是被傳遞給模板字典的列表)模板代碼的一部分:

<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,但是根據我發現的文檔,它看起來像是試圖在模板指令參數中使用內聯Python表達式語法,這似乎是無用的。試試這個:

<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。我自己意識到了這個錯誤並改變了它。但它仍然沒有工作。我決定用兩個if來代替,而且工作。 – Sam 2009-05-04 10:00:46

4

docs也許不明確這一點,但屬性需要被調用test(因爲它是在他們的例子),而不是error

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