Genshi模板引发以下错误:
TemplateSyntaxError:
的表达式"${item.error}"
指令"choose"
中的语法无效
错误指定的模板代码部分如下('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 :(得分: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>
答案 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>