好吧,我现在正在做的是:
我正在构建一个基板,它定义了一个页眉、主题栏、导航栏和一个页脚。在扩展该模板的所有模板中,您只需定义主内容中的实际内容。这很有效,因为所有包含的导航条都是指向模型列表视图和模型创建视图的链接。
现在,当我在“模型列表”视图中时,我希望能够按状态对列表进行排序,并且希望将该功能添加到导航栏中。我想知道如何做到最好,因为唯一需要这种新行为的模板是list视图。其他模板应保持不变。
我是否可以将另一个{%块filter_thingie %} {% and块%}添加到我现在拥有的导航栏中,并只在列表视图中填充它?
我仍然对构建我的模板的最佳方法不太确定。在“最坏”的情况下,我总是可以为列表视图做第二个导航条,但我有点想避免这种情况。
(部分)基板:
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li><a href="/list-view" class="active">All objects of model</a></li>
<li><a href="/create-view">Create new object of model</a></li>
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
{% block order_content %}{% endblock %}
</div>
</div>
</div>
{% endblock content %}是的,所以这可能是我的想法,在这里复杂,但我绝对想保持良好的结构,不重复我自己,如果我没有必要。
谢谢你的帮助,谢谢你的阅读。:)
发布于 2015-10-02 12:44:15
如果您将整个导航栏部分拉出到它自己的块中,则只能在需要的模板中覆盖它。
<!-- base.html -->
{% block navbar %}
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li><a href="/list-view" class="active">All objects of model</a></li>
<li><a href="/create-view">Create new object of model</a></li>
</ul>
</div>
{% endblock %}
<!-- list.html -->
{% block navbar %}
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li><a href="/list-view" class="active">All objects of model</a></li>
<li><a href="/create-view">Create new object of model</a></li>
<li>My filter thingie</li>
</ul>
</div>
{% endblock %}另一方面,如果你喜欢额外的项目总是走到最后,最好--就像你说的--在最后一个站点范围的导航项目之后,在基模板中放置一个空块,然后重写它。(虽然我可能会让这个名字比filter_thingie更通用,但我会预见到不可避免的情况,那时候还需要有其他的东西.)
https://stackoverflow.com/questions/32906905
复制相似问题