问题描述
我正在创建Django项目。我相信我的问题很简单,但是我很难解决这个问题。我有一个index.html
,我想在其中渲染某些东西。我决定我不想为我的每一个html页面都拥有html标头,这对我来说是疯狂的。我创建了一个base.html
文件来包含html标头,并且想将其重新用于其他html文件,但是我该怎么做呢?
所以我最不确定的是要使用哪个标签{% include "base.html" %}
或{% extends "base.html"%}
。直觉告诉我我应该使用{% include "base.html" %}
,因为我不相信自己应该继承。然后,与此相关的第二个问题是我该如何include
或extends
。我刚刚创建了一个base.html
文件和一个index.html
文件,并且在我的index view
文件中有一个views
,该文件将index.html
与context
一起呈现。 / p>
如果我只使用index.html
文件,一切都很好,但是当我在{% include "base.html" %}
文件中执行index.html
时,它不起作用,并且错误提示temlate base.html
可以不存在。如果我使用extends
而不是include
解决方法
我不想为我的每个html页面都拥有html标头
定义一个块,您可以根据需要在其他html页面中定义它,如下所示:
在base.html
中:
{% block header %}{% endblock %}
在index.html
中:
{% block header %}
{% include "header.html" %}
{% endblock %}
在page_without_header.html
中:
// avoid defining the header block