У сайта есть меню, определенный пункт меню подсвечивается при нахождении в определенном разделе сайта
если в меню код вставить class=“active” то оно подсветится
Как организовать это в Django ?
@register.inclusion_tag('menu.html', takes_context=True)
def render_menu(context, active):
nav_menu = [
dict(caption=_(u'Menu1'), url=reverse('menu1'), name='menu1'),
dict(caption=_(u'Menu2'), url=reverse('menu2'), name='menu2'),
dict(caption=_(u'Menu3'), url=reverse('menu3'), name='menu3'),
]
menu = nav_menu
selected_menu = filter(lambda x: x['name'] == active, menu)
selected_menu = selected_menu[0] if selected_menu else None
return {
'nav_menu': nav_menu,
'selected_menu': selected_menu,
}
<ul>
{% for menu in nav_menu %}
<li {% if menu == selected_menu %}class="active"{% endif %}>{{ menu.caption }}</li>
{% endfor %}
</ul>
{% render_menu 'menu2' %}
{%if 'news' in request.path %}class="active"{%endif%}