djangocms模板继承

时间:2014-08-27 16:35:08

标签: html django django-cms

Django-cms多重继承不起作用。

我有以下模板结构:

base.html
    {% block content %}
    {% endblock content %}

page1.html
    {% extends "base.html" %}
    {% block test %}
    {% endblock test %}

page2.html
    {% extends "page1.html" %}
    {% block content %}
          <div>foo</div>
    {% endblock content %}
    {% block test %}
          <div>foo</div>
    {% endblock test %}

问题是第2页HTML中的块测试没有呈现。仅渲染base.html中的块。如果我在base.html中包含块测试也会在第2页中呈现

2 个答案:

答案 0 :(得分:1)

你的base.html是否包含{%block test%}?

您的基本模板必须包含您要覆盖的块。您可以在子模板中添加其他块,但它们必须包含在基本块中。

请参阅https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance

答案 1 :(得分:0)

base.html是您的顶级模板。这通常是以html doctype开头并以</html>标记结尾的内容。其他一切都必须有一个地方去那里。你所拥有的只是一个content块。

那么test块会去哪里?您已尝试将其放入page1.html,但仍需要在父模板中放置一个位置。