导致这个Genshi模板语法错误的原因是什么?

0 投票
2 回答
1027 浏览
提问于 2025-04-15 11:21

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

撰写回答