在其他模板的块

时间:2016-09-28 00:23:40

标签: django django-templates

我必须做一些小网站,用静态内容渲染几页。

这些网页基于base.html模板,此模板有content块。

页面可能有(或没有)aside元素(总是相同)。

到目前为止,我可以这样做:

page.html:

{% extends "base.html" %}

{% block content %}
{% include "page-content.html" %}
{% endblock %}

page-content.html:

{% extends "content-with[out]-aside.html" %}

{% block content %}
foo
{% endblock %}

content-with-aside.html:

<div>
  <div>
    {% block content %}
    {% endblock %}
  </div>
  <aside>
    aside
  <aside>
</div>

content-without-aside.html:

<div>
  <div>
    {% block content %}
    {% endblock %}
  </div>
</div>

但是,假设使用一个没有用处的模板,但是定义页面是否有旁边。

我还可以定义base-with-aside.htmlbase-without-aside.html模板。但我可以这样做吗?

page.html:

{% extends "base.html" %}

{% block content %}
{% expandblock "content-with[out]-aside.html" %}
{% block content %}
foo
{% endblock %}
{% endexpandblock %}
{% endblock %}

在Jinja或许?

在最坏的情况下,我可以定义一个自定义模板标签,但我想知道它已经有这样的功能。

0 个答案:

没有答案