Ведение активной вкладки в Django - PullRequest
0 голосов
/ 31 мая 2018

Я работаю над приложением, которое имеет три вкладки, одну из которых я хотел бы пометить как активную всегда.Исходя из аналогичного вопроса , в настоящее время в моем базовом шаблоне есть следующее:

<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/*, а вкладка «Главная» должна быть отмечена активной для всех остальных.Я понимаю, что мог бы передать некоторую переменную, указывающую, является ли это вопросом / курсом / домом в контексте, всякий раз, когда я даю ответ, но это кажется многократным повторением, и я чувствую, что есть более простой способ сделать то, что я хочу сделать.

1 Ответ

0 голосов
/ 31 мая 2018

Попробуйте использовать шаблон тега in, оператор И измените формат «home» и т. Д. На «/ home /», а также проверьте, есть ли каждая строка в request.path, поскольку она предоставляет каждый относительный URL в формате '/questions/1'.

<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 в операторе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...