Django CMS 3.5.1とDjango 1.11.11のサイトがあり、CMSで作成されたメニューがあります。そのページの1つは、イベントのapphookedリストです。イベントの詳細をクリックすると、メニューのアクティブなクラスが失われます。
ここに私のメニューがあります:
{% for child in children %}
<li class="js-submenuParent {% if child.selected or child.ancestor %}active{% endif %}">
<a href="{% if child.children %}javascript:void(0);{% else %}{{ child.attr.redirect_url|default:child.get_absolute_url }}{% endif %}" class="{% if child.children %}submenu-btn js-openSubmenu{% endif %}">{{ child.get_menu_title }}</a>
{% if child.children %}
<ul class="submenu js-submenu">
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>
{% endif %}
</li>
{% endfor %}
child.ancestor
と思った問題を解決できます(または
child.selected
{% page_attribute "page_title" %}
を使用して親のタイトルにアクセスできるようです
)しかし、そうではありません。作る必要がありますかカスタムapphookメニュー それをするだけですか、より簡単な解決策がありますか?
回答 2 件
これは、3.5.xおよび3.4.xメニューの機能強化で導入されたリグレッションでした。
これは修正されており、3.5.3および3.4.7でリリースされます
関連チケット:https://github.com/divio/django-cms/issues/6336
アプリケーションをアタッチするページは、アプリケーションのメニューを統合するまでメニューシステムが認識する最後のポイントです。
メニューを追加すると、アプリURLを
NavigationNode(title, url, id)
経由でメニューアプリと統合できます URLのオブジェクト。そのため、詳細ビューがある場合は、簡単なメニューを添付できます。
これに関するドキュメントはこちらです。 http://docs.django-cms.org/en/latest/how_to/menus.html#integration-attach-menus
上記に基づいて、少し調べて見つけたように、リスト/クエリセットなどに基づいてノードを生成することもできます。