django的
{% block [blockname] %}
{% endblcok %}
可以让开发者随意定义自己的block,然后在子模板中(通过extends来继承),可以声明同样的模块来重写该block。例如:
// base.htm
<html>
<head>
</head>
<body>
{% block view %}
<p>this is base view</p>
{% endblock %}
</body>
</html>
// index.htm
{% extends "base.htm" %} // 注意这里的引号不能少
{% block view %}
<p>this is child view</p>
{% endblock %}
这样index.htm的显示的内容就不会显示‘this is base view’,而只是显示‘this is child view’。这种是完全覆盖父模板的block。
但是有时候需要扩展而不是覆盖,就需要 block.super
看看重写的index.htm
// index.htm
{% extends "base.htm" %} // 注意这里的引号不能少
{% block view %}
{{ block.super }}
<p>this is child view</p>
{% endblock %}
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.