导致这个Genshi模板语法错误的原因是什么?
一个Genshi模板出现了以下错误:
TemplateSyntaxError: 在指令
"choose"
的表达式"${item.error}"
中有语法错误
错误所指的模板代码部分如下('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'
,我想根据这个值来输出结果。我不太确定错误出在哪里,任何帮助都很感激。谢谢。
2 个回答
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>
4
文档可能没有说明这一点,但这个属性需要叫做 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>