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

时间:2015-07-06 19:25:47

标签: django django-cms

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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开始,这可能会扩展头标记或其他地方的基本块。

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

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