【发布时间】:2014-04-10 13:29:42
【问题描述】:
我已经为每个菜单项创建了一个返回活动或不返回任何内容的模板标签,如果我对每个 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.simple_tag
def active(request, pattern):
import re
if re.search(pattern, request.path):
return 'active'
return ''
我可以在这里做什么?
【问题讨论】:
-
你的班级也依赖地区?如果不是,那么您将您的班级设置为
class="{% active request '^/danmark/$' %} " -
是的,这也取决于地区。
-
能否展示模板标签功能?
-
只需添加我的模板标签,当我硬编码 url 时它工作正常。
-
使用活动链接。开箱即用。 github.com/j4mie/django-activelink
标签: python django django-templates