css django menu django-cms

css - Menú Django CMS, ¿cómo configurar una clase solo para padres?



menu django-cms (1)

En lugar de hacer esto:

{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}

Ahora agregué otra plantilla como esta:

{% show_menu from_level to_level extra_inactive extra_active "teachers_submenu.html" "" "" child %}

Y en esa plantilla ahora tengo:

{% load menu_tags %} {% for child in children %} <li class="{% if child.selected %}selected{% endif %}"> <a href="{{ child.get_absolute_url }}">{{ child.get_menu_title }}</a> </li> {% endfor %}

Entonces la plantilla adicional se ocupa del submenú. Con un poco de estilo ahora funciona.

Mi menú necesita algo de trabajo. Necesito tener una clase en los elementos del menú principal, pero con mi recursión, no está funcionando.

Este es (parte de) mi menú:

Home Teachers (id teachers) Contact Info Projects myproject yourproject

Comienzo con "maestros" como este:

{% show_menu_below_id "teqchers" 0 1 0 1 "teachers_menu.html" %}

Y este es mi teachers_menu.html:

{% load menu_tags %} {% for child in children %} <li class="{% if child.selected %}selected parent_{{forloop.counter}}{% endif %} {% if child.sibling %}parent_{{forloop.counter}} {% endif %}"> <a href="{{ child.get_absolute_url }}">{{ child.get_menu_title }}</a> {% if child.children %} <div class="submenu"> <ul> {% show_menu from_level to_level extra_inactive extra_active template "" "" child %} </ul> </div> {% endif %} </li> {% endfor %}

Con esto en su lugar, mi menú funciona un poco.

Cuando hago clic en Proyectos, todo está bien y los 2 proyectos están a la vista. Pero cuando hago clic en un proyecto, espero que la página se muestre, pero no lo hace, reconstruye mi menú y agrega la clase necesaria a los elementos secundarios:

{% if child.selected %}selected parent_{{forloop.counter}}{% endif %}

Obvio porque ahora es un niño, supongo, pero ¿cómo prevenir esto? Solo necesito esa clase para los primeros elementos del menú.