Можно ли иметь два шаблона base.html в 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 %}
Да, это нормально иметь два файла "base_one.html" и "base_two.html", но мы не можем использовать их одновременно
Не только два, вы можете сохранить столько, сколько хотите, просто с разными именами, и вам придется расширять на разных шаблонах, но да, вы можете легко сохранить части базового шаблона и расширять в одном в соответствии с вашими потребностями.
Я добавляю три файла 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>♥ 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 %}
А вот последний файл, который расширяет 2-й базовый файл, который уже расширяет 1-й базовый файл 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 %}
Надеюсь, это сработает и развеет ваши сомнения. Спасибо за вопрос.