在 Django 中维护活动选项卡



>我正在开发一个有三个选项卡的应用程序,我希望其中一个始终标记为活动状态。基于类似的问题,我目前在我的基本模板中有以下内容:

<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>

这分别在//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>

运算符中的 Django 模板标签

最新更新