我已经为每个菜单项创建了一个模板标签,用于返回 active 或 nothing,如果我对每个 url 进行硬编码,它将起作用,如下所示:
<li class="{% active request '^/danmark/$' %}"><a href="/danmark/"> Hele Danmark</a>
但是如果我使用动态 url,则不会向任何菜单项添加任何事件类,如果 url 是 ^/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导入模板register = 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')
我是一名优秀的程序员,十分优秀!