如何避免"a lot of {%include%} gives a lot of <footer>"?
How to avoid "a lot of {%include%} gives a lot of <footer>"?
当我需要在 html 模板中使用大量 {%include%}(内容)时 - 每个内容包含都会出现不必要的扩展吗?效果也适用于每个后续包含的内容......
当我可以将内容包含添加到第一个 html 模板扩展器时,一切都很好。
但是当我使用“分页”时,我需要将“page=posts”发送到 paginator.html。我找不到将此变量从 layout.html 发送到 blog.html 的方法...
而且我想以后我也会有同样的问题,所以应该解决。
layout.html
<div class="container body-content">
<div id="content">
{% block content %}
{% endblock %}
</div>
</div>
<div class="container body-content">
<footer>
<hr/>
<p>© {{ year }}. Сайт</p>
</footer>
</div>
blog.html
{% extends "app/layout.html" %}
<!--♕-->
{% block content %}
<h2>{{ title }}</h2><br>
{% for post in posts %}
<hr>
<div class="">
<h2> {{post.title}} </h2>
<p> {{post.posted}} </p>
</div>
<p>
<a href="{% url 'blogpost' parametr=post.id %}">{{ post.description }}</a>
</p>
{% endfor %}
{% include "app/pagination.html" with page=posts %}
{% endblock %}
pagination.html
{% extends "app/blog.html" %}
<!--♕-->
{% block content %}
<div class="pagination">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Предыдущая</a>
{% endif %}
<span class="current">
Страница {{ page.number }} из {{ page.paginator.num_pages }}
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Следующая</a>
{% endif %}
</span>
</div>
{% endblock %}
分页应该是一个只渲染分页内容的文件,而不是围绕它的模板。
因此,这意味着您实现了分页 而没有 {% extends "app/layout.html" %}
,因此:
{# pagination.html, <strong>no</strong> extends or block #}
<div class="pagination">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Предыдущая</a>
{% endif %}
<span class="current">
Страница {{ page.number }} из {{ page.paginator.num_pages }}
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Следующая</a>
{% endif %}
</span>
</div>
这将阻止 pagination.html
呈现页眉、页脚和其他内容。然后您可以简单地将分页导入为实用程序模板。
当我需要在 html 模板中使用大量 {%include%}(内容)时 - 每个内容包含都会出现不必要的扩展吗?效果也适用于每个后续包含的内容...... 当我可以将内容包含添加到第一个 html 模板扩展器时,一切都很好。 但是当我使用“分页”时,我需要将“page=posts”发送到 paginator.html。我找不到将此变量从 layout.html 发送到 blog.html 的方法... 而且我想以后我也会有同样的问题,所以应该解决。
layout.html
<div class="container body-content">
<div id="content">
{% block content %}
{% endblock %}
</div>
</div>
<div class="container body-content">
<footer>
<hr/>
<p>© {{ year }}. Сайт</p>
</footer>
</div>
blog.html
{% extends "app/layout.html" %}
<!--♕-->
{% block content %}
<h2>{{ title }}</h2><br>
{% for post in posts %}
<hr>
<div class="">
<h2> {{post.title}} </h2>
<p> {{post.posted}} </p>
</div>
<p>
<a href="{% url 'blogpost' parametr=post.id %}">{{ post.description }}</a>
</p>
{% endfor %}
{% include "app/pagination.html" with page=posts %}
{% endblock %}
pagination.html
{% extends "app/blog.html" %}
<!--♕-->
{% block content %}
<div class="pagination">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Предыдущая</a>
{% endif %}
<span class="current">
Страница {{ page.number }} из {{ page.paginator.num_pages }}
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Следующая</a>
{% endif %}
</span>
</div>
{% endblock %}
分页应该是一个只渲染分页内容的文件,而不是围绕它的模板。
因此,这意味着您实现了分页 而没有 {% extends "app/layout.html" %}
,因此:
{# pagination.html, <strong>no</strong> extends or block #}
<div class="pagination">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Предыдущая</a>
{% endif %}
<span class="current">
Страница {{ page.number }} из {{ page.paginator.num_pages }}
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Следующая</a>
{% endif %}
</span>
</div>
这将阻止 pagination.html
呈现页眉、页脚和其他内容。然后您可以简单地将分页导入为实用程序模板。