【问题标题】:How can I add a css class to elements conditionally in django?如何在 django 中有条件地向元素添加 css 类?
【发布时间】:2020-07-30 13:36:03
【问题描述】:

我在 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 来显示上面的哪个链接是活动的,哪些是侧边栏链接。我如何有条件地将这些类之一应用于这些链接,具体取决于哪个当前处于活动状态?

【问题讨论】:

    标签: css django django-templates


    【解决方案1】:

    如果您对每个页面(仪表板、业务、分析)都有一个视图,那么您只需为每个视图呈现不同的模板。

    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', {})
    

    因此您可以独立设置模板样式

    【讨论】:

    • 我以前也是这样。但现在我正在考虑利用现有模板并重用代码而不是再次键入它。这就是我将默认布局(具有此侧边栏)扩展到其他页面的原因。还有其他方法可以实现吗?也许使用js?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2015-01-29
    • 2016-07-18
    相关资源
    最近更新 更多