che*_*g95 1 django django-templates
我正在开发一个具有三个选项卡的应用程序,我希望将其中一个选项卡始终标记为活动状态。基于类似的问题,我目前的基本模板中有以下内容:
<div class="tab">
<a class="{% if request.resolver_match.url_name == 'home' %}active{% endif %}" href="/">Home</a>
<a class="{% if request.resolver_match.url_name == 'questions' %}active{% endif %}" href="/questionManager/">Question Manger</a>
<a class="{% if request.resolver_match.url_name == 'course' %}active{% endif %}" href="/courseManager/">Course Manager</a>
</div>
Run Code Online (Sandbox Code Playgroud)
/分别在、/questionManager/和 之间导航时效果很好/courseManager/。问题是,如果我导航到另一个页面(例如/questionManager/addQuestion/),该选项卡将不再标记为活动状态。有没有办法无论我想导航到哪里都可以保持活动状态?具体来说,“问题”选项卡应标记为对所有人有效/questionManager/*,“课程”选项卡应标记为对所有人有效/courseManager/*,而“主页”选项卡应对其他所有内容标记为活动状态。我意识到我可以传递一些变量来指示每当我呈现响应时上下文中是否是问题/课程/主页,但这似乎有很多重复,我觉得有一种更简单的方法可以做我想做的事情。
尝试使用模板标记in运算符并将“home”等的格式更改为“/home/”,并检查每个字符串是否在 request.path 中,因为它以“/questions/1”格式提供每个相对 URL。
<div class="tab">
<a class="{% if '/home/' in request.path %}active{% endif %}" href="/">Home</a>
<a class="{% if '/questions/' in request.path %}active{% endif %}" href="/questionManager/">Question Manger</a>
<a class="{% if '/course/' in request.path %}active{% endif %}" href="/courseManager/">Course Manager</a>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |