我是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.css
。 index.html
仅显示“内容”消息,不显示页眉或页脚。但是,当我从{% extends 'dh5bp/base.html' %}
中删除第一行default.html
时,default.html
中定义的页眉和页脚会显示在index.html
中。 django-html5-boilerplate是否需要一些其他配置来显示页眉和页脚?非常感谢。
阿西
答案 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 %}