我正在用 django 开发一个应用程序,但我不知道如何使用 Django 模板系统通过模板继承来实现块覆盖。
我有一个base.html
模板:
[...]
<body>
{% block content %}
{% endblock %}
</body>
[...]
有index.html
一个显示 JS 滑块的模板(它的内容直接位于body
标签中):
{% extends "base.html" %}
{% block content %}
// some javascript/css slider stuff here
{% endblock %}
并且有一些动态内容页面:list.html
、form.html
等(它们的内容应驻留在某些div
容器中)。我container.html
以某种方式定义如下:
{% extends "base.html" %}
{% block content %}
<div class="container marketing">
<div class="container">
{% put overriden "content" block here %}
</div>
</div>
{% endblock %}
然后我可以list.html
这样定义:
{% extends "container.html" %} # note what I'm extending here!
{% block content %}
this is my list
{% endblock %}
为什么?
我想让我的基本模板尽可能通用(例如启用客户端滑块 - 没有div
容器)。我想将我的大部分动态页面(列表、表单等)包装在同一个 HTML 容器代码中。由于我不想重复此代码,因此它应该在一个模板中可用(通过列表、表单等扩展的模板)。
我知道我可以在里面定义另一个块。但也许有更好的解决方案?