посоветуйте пожалуйста как можно передать именованный параметр(slug) из урла в inclusion tag. это мне нужно для того чтобы выделить активный пункт меню
у меня есть базовый шаблон(base.html), в который при помощи inclusion tag включён кусок кода с меню(nav_top.html)
проблема в том, что inclusion tag передаёт в nav_top.html все записи из таблицы, содержащей названия пунктов и соответствующие им slug`s(далее я их прогоняю через цикл и вывожу пункты меню). а представление передаёт в base.html именованный параметр из урла(slug) , который не виден в nav_top.html. а мне нужно чтобы он там был виден. нужно для того чтобы при выводе пунктов меню сравнить эти два значения slug и если они совпали, то добавить class="active"
далее привожу некоторые куски кода, но их смотреть не обязательно так как вопрос уже понятен, думаю...
urls.py:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^(?P<slug>.*?)/', 'mysite.views.inner_page', name='inner_page'),
)
views.py:
def inner_page(request, slug='index'):
t = loader.get_template('base.html')
if slug == 'index':
content = Page.get_main_pages()
c = RequestContext(request, {
'title': 'Main page',
'content': content,
'slug': 'index',
})
else:
content = Page.get_page(slug)
c = RequestContext(request, {
'title': title,
'content': content,
'slug': slug,
})
return HttpResponse(t.render(c))
inclusion_tags.py:
@register.inclusion_tag("nav_top.html")
def part_nav_top():
pages_all = Page.objects.all()
return{
'pages_all': pages_all,
}
nav_top.html:
{% for entrie in pages_all %}
<li>
<a class="{% if entrie.slug == slug %}active-trail{% endif %}" href="/{{ entrie.slug }}">
<span>{{ entrie.menu_punkt }}</span>
</a>
</li>
{% endfor %}
БД