Есть ли в Django способ маскировать ссылки в navbar в соответствии с загруженным шаблоном?
Я хотел бы сделать простую вещь в Django, но не могу найти "Django" способ сделать это, и я уверен, что он есть.
Представим, что у меня есть простая навигационная панель следующего вида:
<ul>
<li>
<a href="{% url 'home-index' %}">Home</a>
</li>
<li>
<a href="{% url 'blog-index' %}">Blog</a>
</li>
</ul>
Когда я нахожусь на странице 'blog-index', я хочу скрыть эту конкретную ссылку в навигационной панели.
Спасибо за помощь
Вы можете проверить request.path
в шаблоне.
{% if request.path == "your_url" %}
(dont show button)
{% endif %}
Вы можете использовать оператор if, чтобы установить стиль, например, на hidden.
===== код навигационной панели =====
<nav class="navbar navbar-expand-lg bg-dark navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">My Site</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" {% if request.resolver_match.url_name == 'home' %}style="display: none;"{% endif %} href="{% url 'home' %}">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" {% if request.resolver_match.url_name == 'service' %}style="display: none;"{% endif %} href="{% url 'service' %}">Service</a>
</li>
<li class="nav-item">
<a class="nav-link" {% if request.resolver_match.url_name == 'contactus' %}style="display: none;"{% endif %} href="{% url 'contactus' %}">Contact Us</a>
</li>
<li class="nav-item">
<a class="nav-link" {% if request.resolver_match.url_name == 'aboutus' %}style="display: none;"{% endif %} href="{% url 'aboutus' %}">About Us</a>
</li>
</ul>
</div>
</div>
</nav>
==== urls.py ====
from django.urls import path
from .views import *
urlpatterns = [
path('', HomeView,name='home'),
path('service/', ServiceView,name='service'),
path('aboutus/', AboutUsView ,name='aboutus'),
path('contactus/', ContactUsView,name='contactus'),
]
===== Выход =====