如何从 Django HTML 中提取方法?
How to extract a method from Django HTML?
我的网站(使用 django 构建)具有分页功能,因此不必一次加载太多内容。在页面之间跳转的按钮应该看起来总是一样的。我在互联网上找到了以下代码,效果很好:
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
不幸的是,我必须将它放入我的每个 HTML 文件中,并且有 重复代码 。有没有办法在其他地方提取这几行,然后在各自的HTML文件中只link到它们 ?
你可以把这些写在一个特定的文件里,例如pagination.html
:
<!-- pagination.html -->
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
然后您可以使用 {% include … %}
template tag [Django-doc] 在其他模板中呈现此文件:
<!-- some-other-template.html -->
<!-- ... -->
<b>{% include</b> 'path/to/pagination.html' <b>%}</b>
我的网站(使用 django 构建)具有分页功能,因此不必一次加载太多内容。在页面之间跳转的按钮应该看起来总是一样的。我在互联网上找到了以下代码,效果很好:
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
不幸的是,我必须将它放入我的每个 HTML 文件中,并且有 重复代码 。有没有办法在其他地方提取这几行,然后在各自的HTML文件中只link到它们 ?
你可以把这些写在一个特定的文件里,例如pagination.html
:
<!-- pagination.html -->
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
然后您可以使用 {% include … %}
template tag [Django-doc] 在其他模板中呈现此文件:
<!-- some-other-template.html -->
<!-- ... -->
<b>{% include</b> 'path/to/pagination.html' <b>%}</b>