2014-01-26 104 views
1

我是Django的新手,并且成功并且轻松地设置它,并且也很容易地配置了django-html5-boilerplate。我正在使用Django 1.6.1和django-html5-boilerplate 1.0.8。但是,我无法弄清楚如何跨所有子模板显示页眉和页脚,并且非常感谢帮助。这是一个扩展dh5bp/base.htmldefault.htmlDjango HTML5锅炉板页眉和页脚

{% 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-样板安装和我自己的css/base.css,这是在我的应用程序的静态文件夹。 index.html仅显示“内容”消息,不显示页眉或页脚。但是,当我从default.html删除第一行{% extends 'dh5bp/base.html' %}时,default.html中定义的页眉和页脚显示在index.html中。 django-html5-boilerplate是否需要一些其他配置来显示页眉和页脚?提前致谢。

阿西夫

回答

1

在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 %}