【问题标题】:Django, trying to change the class attribute of an extended nav barDjango,试图更改扩展导航栏的类属性
【发布时间】:2017-07-17 08:34:52
【问题描述】:

我创建了一个“base.html”模板来保存我的导航栏和我网站上经常出现的其他元素。 当我扩展此模板并将值放入我的块中时,其中一个不想正常工作。

在我的代码中,我尝试将导航元素的类值设置为“活动”,具体取决于我所在的页面(这可能不是最佳解决方案)。这个块永远不会起作用。

感谢您的帮助:)

urls.py

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^addProduct/$', views.addProduct, name='addProduct'),
]

views.py

def index(request):
    latest_product_list = Product.objects.all().order_by('-id')[:5]
    return render(request, 'main/index.html', {'latest_product_list': latest_product_list})

def addProduct(request):
    # Do things
    return render(request, 'main/add_product.html', {'form':form})

base.html

<!DOCTYPE html>
<html lang="fr">
<head>
#header informations
</head>

<body>
    <div class="container-fluid">

        <div class="row">
            {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
        </div>

        <ul class="nav nav-pills" role="tablist">
            <li role="presentation" class="{% block navbar_class-index %}{% endblock %}"><a href="{% url 'main:index' %}">Index</span></a></li>
            <li role="presentation" class="{% block navbar_class-addProduct %}{% endblock %}"><a href="{% url 'main:addProduct' %}">Ajouter un produit</a></li>
        </ul>

        <div class="row" id="content">
            {% block content %}{% endblock content %}
        </div>
    </div>

</body>

index.html

{% extends "base.html" %}

{% block navbar_class-index %}active{% endblock %}

{% block content %}

<div class="col-md-12">
   ## Here is my content
</div>
{% endblock content %}

add_product.html

{% extends "base.html" %}

{% block navbar_class-addProduct %}active{% endblock %}

{% block content %}
<div class="col-md-12">
    <form action="{% url 'main:addProduct' %}" method="post">
    {% csrf_token %}
    <label> Entrez votre produit et cliquez sur Add Product.</label><br/><br/>
    <label> Produit : </label>{{form.form_product_url}}
    <input type="submit" value="Add Product" />
    </form>
</div>
{% endblock content %}

【问题讨论】:

    标签: django class django-templates block


    【解决方案1】:

    我猜你的 base.html 文件不在正确的文件夹中!

    【讨论】:

    • 你是对的。基本上它不在模板/项目文件夹中,只是在模板文件夹中。我在第一个版本中有 base.html 的第一个版本的副本,因此它没有应用我的更改。
    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2016-05-13
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多