Как я могу добавить класс css к элементам условно в django? - PullRequest
0 голосов
/ 17 апреля 2020

Я создал шаблон боковой панели в django, который расширяется различными страницами.

 <ul class="navbar-nav flex-column mt-5">
                            <li class="nav-item">
                                <a class="nav-link p-3 mb-2 text-white" href=#>
                                    <i class="fas fa-home text-white ml-2 fa-lg mr-3"></i> Dashboard
                                </a>
                            </li>
                        </ul>
                        <ul class="navbar-nav flex-column">
                            <li class="nav-item">
                                <a class="nav-link p-3 mb-2 text-white" href="{% url 'a' %}">
                                    <i class="fas fa-briefcase text-white ml-2 fa-lg mr-3"></i> Business
                                </a>
                            </li>
                        </ul>
                        <ul class="navbar-nav flex-column">
                            <li class="nav-item">
                                <a class="nav-link p-3 mb-2 text-white" href="#">
                                    <i class="fas fa-chart-pie text-white ml-2 fa-lg mr-3"></i> Analytics
                                </a>
                            </li>
                        </ul>

Приведенные выше ссылки ведут на различные страницы и присутствуют в боковой панели, то есть в шаблоне. Я создал два css классов current и sidebar-link, чтобы показать, какая ссылка из приведенного выше активна, а какая - боковая. Как я могу условно применить один из этих классов к этим ссылкам в зависимости от того, какой из них активен в настоящее время?

1 Ответ

0 голосов
/ 17 апреля 2020

Если у вас есть представление для каждой страницы (Dashboard, Business, Analytics), тогда вам нужно только отобразить разные шаблоны для каждого представления.

views.py

def dashboard(request):
   return render(request, 'dashboard.html', {})

def business(request):
   return render(request, 'business.html', {})

def analytics(request):
   return render(request, 'analytics.html', {})

Таким образом, вы можете независимо стилизовать шаблоны

...