0

Chameleonテンプレートに次のコードがあります。

<span tal:repeat="menu view.site_menu">
    <tal:block tal:condition="menu.current">
        <span>${menu.title}</span>
    </tal:block>
    <tal:block tal:condition="not menu.current">
        <span><a href="/${menu.href}">${menu.title}</a></span>
    </tal:block>
    <tal:block tal:condition="not repeat/menu/end">
        <span> | </span>
    </tal:block>
</span>

このページをレンダリングしようとすると、次のエラーが発生します。

TypeError: unsupported operand type(s) for /: 'RepeatDict' and 'dict'
 - Expression: "not repeat/menu/end"
...

ここで私が間違っていることを誰かが見ることができますか?

4

1 に答える 1

0

私は試行錯誤の末、問題の解決策を見つけることができました。作業コードは次のとおりです。

<span tal:repeat="menu view.site_menu">
    <tal:block tal:condition="menu.current">
        <span>${menu.title}</span>
    </tal:block>
    <tal:block tal:condition="not menu.current">
        <span><a href="/${menu.href}">${menu.title}</a></span>
    </tal:block>
    <tal:block tal:condition="not repeat.menu.end">
        <span tal:omit-tag="">|</span>
    </tal:block>
</span>

これは期待どおりに機能し、最後ではなく各メニュー項目の間にセパレーターを配置します。

以前にこれを試したことがあると確信していましたが、現在は機能しています。

于 2014-01-27T00:47:59.227 に答える