Django HTML5 Boilerplate页眉和页脚

时间:2014-01-26 18:26:26

标签: python django

我是Django的新手,并且成功且轻松地进行了设置,并且还轻松配置了django-html5-boilerplate。我正在使用Django 1.6.1和django-html5-boilerplate 1.0.8。但是,我无法弄清楚如何在所有子模板中显示页眉和页脚,并且非常感谢帮助。这是default.html扩展dh5bp/base.html

{% extends 'dh5bp/base.html' %}
{% load staticfiles %}
{% load url from future %}
{% block title %}{% endblock %}
{% block head %}
<link rel="stylesheet" href="{% static "css/base.css" %}">
{% endblock %}
<header><h1>The site header</h1></header>
{% block content %}{% endblock %}
<footer><p>The site footer</p></footer>

index.html延伸default.html

{% extends "default.html" %}
{% block title %}The home page{% endblock %}
{% block content %}This main page is under construction.{% endblock %}

我已经验证(在命令行上)runserver从django-html5-boilerplate安装中获取所有静态文件,以及我自己的应用程序静态文件夹中的css/base.cssindex.html仅显示“内容”消息,不显示页眉或页脚。但是,当我从{% extends 'dh5bp/base.html' %}中删除第一行default.html时,default.html中定义的页眉和页脚会显示在index.html中。 django-html5-boilerplate是否需要一些其他配置来显示页眉和页脚?非常感谢。

阿西

1 个答案:

答案 0 :(得分:2)

在Django模板继承层次结构中,子模板中的所有内容都必须位于父模板的块内。你的“default.html”不是基本模板,所以一切都必须在一个块中 - 但你的页眉和页脚不是,所以他们根本就没有去过。

它们应位于您的content块内,然后应该为子项继承定义另一个块:

{% block content %}
<header><h1>The site header</h1></header>
{% block child_content %}{% endblock %}
<footer><p>The site footer</p></footer>
{% endblock %}