base.html 包含 {% extends 'base.html' %}?

base.html contains {% extends 'base.html' %}?

我正在尝试 django-cms 教程, 有些东西我不明白 at the end of this part :

我必须在 /mysite/templates/polls/base.html 添加模板。但是这个文件必须以 {% extends 'base.html' %} 开头。 那是正常的吗?此行的文件是否引用另一个 base.html 文件?也许是父目录中的那个?我一点也不确定。

感谢您的帮助。

像我一样,从 base.html 扩展会建议您在项目的根模板目录中有一个 base.html 文件来处理核心标记;

{% load cms_tags menu_tags sekizai_tags cache i18n %}
{% load static from staticfiles %}
<head>
    <meta charset="utf-8">

    {% block head %}{% endblock head %}
    <title>
    <script type="text/javascript"
        src="{% static 'project/external/jquery-1.11.2.min.js' %}"></script>

    {% render_block "css" %}
    {% render_block "js" %}

    {% block styles %}{% endblock styles %}
    {% block scripts %}{% endblock scripts %}

</head>
<body>
    {% cms_toolbar %}

    {% block content %}
    {% endblock content %}

    {% block footer-scripts %}{% endblock footer-scripts %}
</body>
</html>

这样,当您在应用程序中设置模板时,您可以从该应用程序的 base.html 开始,这可能会扩展 head 标签或其他地方的基本块。

通常我有一个类似于 myproj/templates 的设置,然后是 myproj/project/templatesmyproj/app1/templates 这样的应用程序模板。第一个模板目录位于 manage.py 旁边,我使用 project 目录来保存设置和特定于该项目的任何模板,例如 CMS 页面的类型; article.html

您不必扩展 base.html,但如果您不这样做,则需要重新创建所有标记,因此通过使用此模板模型,您将能够限制重复标记。