4

ピラミッドとカメレオンのテンプレートを使い始めたばかりです。

サイト メニューをレンダリングする次のコード例があります。

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

リンクではなく、現在のページ メニュー項目を強調表示します。ブートストラップ ピル ナビゲーションを使用しようとしています。<li>アクティブなページのタグに、条件付きで class="active" を追加する必要があります。

<li>タグに tal:condition を追加してみました:

 <li tal:repeat="menu view.site_menu" tal:condition="menu.current" class="active">
    <a href="/${menu.href}">${menu.title}</a>
 </li>

しかし、次のエラーが表示されます。

builtins.NameError
NameError: menu

 - Expression: "menu.current"
 - Filename:   H:\eta\eta\eta\templates\global_layout.pt
 - Location:   (line 38: col 57)
 - Source:     ... .site_menu" tal:condition="menu.current" class="active">
                                              ^^^^^^^^^^^^

ここでの私の最善の推測は、タグmenuでのみ利用できるということです。tal:repeat

私が必要とすることを達成するための最良の方法は何ですか。

4

1 に答える 1