Найти - Пользователи
Полная версия: Меню сайта class="active"
Начало » Django » Меню сайта class="active"
1
zili
У сайта есть меню, определенный пункт меню подсвечивается при нахождении в определенном разделе сайта
если в меню код вставить class=“active” то оно подсветится
Как организовать это в Django ?
alafin
Для начала создайте tamplatetags:
@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,
}
Затем в menu.html
<ul> 
{% for menu in nav_menu %}
<li {% if menu == selected_menu %}class="active"{% endif %}>{{ menu.caption }}</li>
{% endfor %}
</ul>
И уже там где нужно отобразить меню делаем:
{% render_menu 'menu2' %}
zili
сделал так
 {%if 'news' in request.path %}class="active"{%endif%}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB