【问题标题】:How to extract a method from Django HTML?如何从 Django HTML 中提取方法?
【发布时间】:2021-08-11 07:19:32
【问题描述】:

我的网站(使用 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 文件中链接到它们

【问题讨论】:

    标签: django methods feature-extraction


    【解决方案1】:

    您可以在特定文件中写入这些,例如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 -->
    <!-- ... -->
    {% include 'path/to/pagination.html' %}

    【讨论】:

    • 非常感谢!不知何故没有想到这一点。我甚至使用{%延长...%}其他地方。刚刚难以理解的是,存在类似的东西......%}。 span>
    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 2019-07-09
    • 1970-01-01
    • 2012-03-27
    • 2016-08-08
    相关资源
    最近更新 更多