Django:如何在站点范围内包含块?
抱歉,这很基本。我已经将静态html导航栏抽象为一个块,以便可以从模型中动态呈现它。我用以下语法在base.html中创建了一个新的块标记Django:如何在站点范围内包含块?,django,templates,block,Django,Templates,Block,抱歉,这很基本。我已经将静态html导航栏抽象为一个块,以便可以从模型中动态呈现它。我用以下语法在base.html中创建了一个新的块标记 {% block navigation %}{% endblock %} 如何确保在每个页面上都呈现此内容?我需要为此创建某种中间层吗?到目前为止,我所做的一切都只是使用了主块 编辑2011年8月14日星期日上午11:25 我解释得不太清楚。导航块的内容是 {% extends 'base.html' %} {% block navigation %}
{% block navigation %}{% endblock %}
如何确保在每个页面上都呈现此内容?我需要为此创建某种中间层吗?到目前为止,我所做的一切都只是使用了主块
编辑2011年8月14日星期日上午11:25
我解释得不太清楚。导航块的内容是
{% extends 'base.html' %}
{% block navigation %}
<nav>
<ul>
{% for item in items %}
<li><a href="{{ item.url }}">{{ item.name }}</a></li>
{% endfor %}
</ul>
</nav>
{% endblock %}
{%extends'base.html%}
{%block-navigation%}
{items%%中的项的%s}
{%endfor%}
{%endblock%}
如果可能的话,我想在每个页面上呈现这个,而不必逐个检查base.html的子模板并将其添加到其中 您的块在这里没有做任何事情,但是如果您想在所有模板中显示某些内容,则必须在基本模板(base.html)中定义它,并使其他模块从中扩展: base.html
Yor menu and the stuff you want to appear everywhere
{% block content %}{% endblock %}
另一个模板
{% extends "base.html" %}
{% block content %}
The actual content of the page
{% endblock %}
{%block FOO%}{%endblock%}在子模板中保留要覆盖的空间 {%include“foo.html”%}将内容从另一个文件拉入当前文件 要在每个页面上显示{%block navigation%}{%endblock%},您需要添加内容
{% block navigation %}SHOW ME{% endblock %}
您已经有了静态导航栏,所以您可以在base.html页面中编写代码,然后在每个新页面上与
{%extends'base.html%}
标记一起使用。您的标记将出现在每个页面中。另外,如果您在子页面中只使用extends标记,然后对其进行渲染,您将看到base.html而不使用任何版本
如果您有需要出现在少数页面上但不是每个页面上的代码-创建“includes”目录,将代码保存在那里,并使用{%include%}
标记扩展基本模板。它不会避免重新绘制,但会缩短代码
最后一件事是你将来需要的,也许是动态代码缓存。使用
{%cache%}
标记,您可以将块缓存一段时间。您的块在这里没有做任何事情。你到底想达到什么目的?