在 django 中有两个 base.html 模板可以吗?

Is it okay to have two base.html templates in django?

在 Django 中可以有多个 base.html 模板吗?例如,我会有一个从 base_one.html 扩展的模板和另一个从 base_two.html 扩展的模板。例如,这是模板之一:

{% extends "base_one.html" %}

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

这是另一个模板:

{% extends "base_two.html" %}

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

好吧,不仅两个你可以保留你想要的只是用不同的名字,你必须在不同的模板上扩展但是是的你可以很容易地保留基本模板的一部分并根据你的需要在一个模板中扩展。

我在这里添加三个文件 1-base.html 2-base-comments.html 3-post-template.html

这里是我的回答的一点扩展 假设这个文件名为base.html

# base.html
    <html>
        <head>
            <title>Foo</title>
        </head>
        <body>
            <header>
                {% block header %}
                    <h1>Lorem ipsum</h1>
                {% endblock %}
            </header>
            {% block content %}{% comment %}A wrapper around content is needed{% endcomment %}
                <div class="page-content">
                    {% block page_content %}{% comment %} Filled in by your page templates {% endcomment %}
                    {% endblock %}
                </div>
            {% endblock %}
            <footer>
                {% block footer %}
                    <em>&#x2665; joar</em>
                {% endblock footer %}
            </footer>
        </body>
    </html>

这是另一个文件 base-comments.html,它扩展了前一个文件。

# base-comments.html
    {% extends 'base.html' %}
    {% block content %}
        <div class="page-content">
            {% block page_content %}{% comment %} Filled in by your page templates {% endcomment %}
            {% endblock %}
            
            {% block comments %}
                <footer>
                    <h2>Comments</h2>
                    <script>loadCommentsEtc()</script>
                </footer>
            {% endblock %}
        </div>
    {% endblock %}

这是扩展第二个基本文件的最后一个文件,它已经扩展了第一个基本文件 3-post-template.html

# post-template.html
    {% extends 'base-comments.html' %}
    {% block page_content %}
        <article>
            <h1>{{ post.title }}</h1>
            <div class="post-body">
                {{ post.body }}
            </div>
        </article>
    {% endblock %}

我希望这能奏效并消除您的疑虑。 谢谢提问。