Укажите страницы, на которых должны появляться элементы навигационной панели, с помощью Bootstrap в Django

Я пытаюсь указать страницу, на которой должна отображаться эта выпадающая панель навигации. Я пытался добавить эту строку: {% if request.resolver_match.url_name == 'club_selection' %} class = "active" {% endif %}, но, похоже, это ничего не дает. Возможно, я использую его неправильно. Если кто-нибудь знает, как правильно это сделать, это будет огромной помощью.

club_selection_dropdown.html

<div class="collapse navbar-collapse" id="navbarSupportedContent">
  <ul class="navbar-nav me-auto mb-2 mb-lg-0">
    <li class="nav-item dropdown">
      <li {% if request.resolver_match.url_name  == 'club_selection' %} class = "active" {% endif %}>
        <a class="nav-link" href="/" id="club--dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
          Current Clubs  <span class="bi-arrow-down-circle-fill"></span>
        </a>
        <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="club-dropdown">
          {% for club in clubs %}
            <form action = "{% url 'group_check' user.id %}" method = "post">
              {% csrf_token %}
              <input type="hidden" name="club_name" value="{{ club.club_name }}">
              <style>
                .btn:hover {
                  background-color: lightgrey;
                }
                .btn-group.special {
                  display: flex;
                }
                .special .btn {
                  flex: 1;
                }
              </style>
              <div class="btn-group special" role="group">
                <input type = "submit" value = "{{club.club_name}}" class="btn col-xs-11 text-left" style=".btn-primary:hover; text-align:left; padding-left:6px">
              </div>
            </form>
          {% endfor %}
        </ul>
      </li>
    </li>
  </ul>
</div>

views.py

def club_selection(request):
    list_of_clubs = ClubList()
    clubs = list_of_clubs.club_list
    return render(request, 'club_selection.html', {'clubs':clubs})

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name = 'home'),
    path('log_in/', views.LogInView.as_view() , name = 'log_in'),
    path('sign_up/', views.sign_up, name = 'sign_up'),
    path('log_out/', views.log_out, name = 'log_out'),
    path('show_current_user_profile/', views.show_current_user_profile, name = 'show_current_user_profile'),
    path('user/<int:user_id>', views.ShowUserView.as_view(), name='show_user'),
    path('officer_user/<int:user_id>', views.ShowOfficerView.as_view(), name='show_user_officer'),
    path('member_list/', views.MemberListView.as_view(), name = 'member_list'),
    path('officer/', views.officer, name = 'officer'),
    path('officer_promote_applicants/', views.ApplicantListView.as_view(), name = 'officer_promote_applicants'),
    path('officer_main/', views.OfficerMainListView.as_view(), name = 'officer_main'),
    path('reject_accept_handler/<int:user_id>', views.reject_accept_handler, name = 'officer_promote_applicants'),
    path('profile/',views.profile,name = 'profile'),
    path('password/', views.password, name='password'),
    path('owner/', views.owner, name = 'owner'),
    path('officer_list/', views.OfficerListView.as_view() ,name = 'officer_list'),
    path('owner_member_list', views.OwnerMemberListView.as_view(), name = 'owner_member_list'),
    path('promote_member/<int:user_id>', views.promote_member, name = 'promote_member'),
    path('demote_officer/<int:user_id>', views.demote_officer, name = 'demote_officer'),
    path('transfer_ownership/<int:user_id>', views.transfer_ownership, name = 'transfer_ownership'),
    path('club_selection/', views.club_selection, name = 'club_selection'),
    # path('club_dropdown/', views.club_dropdown, name = 'club_dropdown'),
    path('group_check/<int:user_id>', views.group_check, name = 'group_check'),
    path('application_form/', views.application_form, name = 'application_form'),
    path('create_new_club/', views.create_new_club, name = 'create_new_club')

Вы можете сделать это так :

{% if 'club-selection' in request.path %}class="active"{% endif %} 

Так, если термин появляется в пути вашего url, покажите активный класс.

Примечание : Делайте это только в том случае, если вы хотите установить активный класс для множества конечных точек, разделяющих одно и то же пространство имен.

Если вы можете сделать это :

 {% if 'club-selection' == request.path %}class="active"{% endif %} 

Велика вероятность того, что ваш процессор шаблонов настроен неправильно, поэтому убедитесь, что в вашем settings.py в переменной шаблона и внутри context_processors есть следующее :

"context_processors": [
            ....
            "django.template.context_processors.request",
            ....
            ]

Перезапустите свой сервер и попробуйте снова

Вернуться на верх