我创建了一个模板标签,用于对每个菜单项返回active或不返回任何内容,如果我对每个url进行硬编码,它将起作用,如下所示:
<li class="{% active request '^/danmark/$' %}"><a href="/danmark/"> Hele Danmark</a>
但是,如果我使用动态网址,则如果网址为
^/danmark/{{a.area}}/$
,则不会在菜单项中添加任何活动类,例如: {% for a in all_areas %}
<li class="{% active request '^/danmark/{{a.area}}/$' %} "><a href= "/danmark/{{a.area}}/">{{a.area}} </a></li>
{% endfor %}
和模板标签:
从Django导入模板
注册= template.Library()
@register.simple_tag
def active(request, pattern):
import re
if re.search(pattern, request.path):
return 'active'
return ''
我在这里可以做什么?
最佳答案
你可以试试这个
{% with request.resolver_match.url_name as url_name %}
<ul id="menu">
<li class="{% if url_name == 'home' %}active{% endif %}">Home</li>
<li class="{% if url_name == 'about' %}active{% endif %}">About</li>
<li class="{% if url_name == 'employer' %}active{% endif %}">Employer</li>
</ul>
{% endwith %}
您的网址在哪里
url(r'$','home_view', name='home'),
url(r'about/$','about_view', name='about'),
url(r'employer/$','employer_view', name='employer')
关于python - 动态事件菜单项Django,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22249446/