Django模板大数据分页链接问题

如何解决Django模板大数据分页链接问题

我在我的模板中使用了 django 分页器。它在数据较少的情况下工作正常,但在有大量页面效果不佳。

分页链接代码如下:

<div class="paginationWrapper mt-3">
        {% if match_list.paginator.num_pages > 1 %}
        <ul class="pagination">
            {% if match_list.has_prevIoUs %}
            <li>
                <a href="?p={{ match_list.prevIoUs_page_number }}
                    {% if request.GET.search %}&search={{ request.GET.search }}
                    {% endif %}" class="page-link"><i class="fas fa-angle-double-left"></i></a>
            </li>
            {% endif %}
            {% for j in match_list.paginator.page_range %}
            {% if match_list.number == j %}
            <li class="active"><a class="page-link" href="#">{{ j }}</a></li>
            {% else %}
            <li><a href="?p={{ j }}{% if request.GET.search %}&search={{ request.GET.search }}
                    {% endif %}" class="page-link">{{ j }}</a></li>

            {% endif %}
            {% endfor %}

            {% if match_list.has_next %}
            <li>
                <a href="?p={{ match_list.next_page_number }}  
                {% if request.GET.search %}&search={{ request.GET.search }}{% endif %}            
                    " class="page-link"><i class="fas fa-angle-double-right"></i></a>
            </li>
            {% endif %}
        </ul>
        {% endif %}
    </div>

在此之后,我开始在我的模板中添加链接,例如:

enter image description here

我真正想要的是在那之后我只想显示 10 个链接......为了显示更多,任何人都可以帮助我解决这个问题,我被困在这里

解决方法

https://docs.djangoproject.com/en/3.1/topics/pagination/#paginating-a-listview

试试这个

{% load core %}   // core here is template tag
{% if match_list.paginator.num_pages > 1 %}
        <ul class="pagination justify-content-center">
            {% if match_list.has_previous %}
                <li class="page-item">
                    <a class="page-link" href="?{% param_replace page=1 %}">
                        First
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <a class="page-link" href="#">
                        First
                    </a>
                </li>
            {% endif %}
            {% if match_list.has_previous %}
                <li class="page-item">
                    <a class="page-link" href="?{% param_replace page=match_list.previous_page_number %}">
                        &laquo;
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <a class="page-link" href="#">
                        &laquo;
                    </a>
                </li>
            {% endif %}
            {% for i in match_list.paginator.page_range %}
                {% if match_list.number == i %}
                    <li class="page-item active">
                        <a class="page-link" href="#">{{ i }} <span class="sr-only">(current)</span>
                        </a>
                    </li>
                {% elif match_list.number > i|add:"-5" and match_list.number < i|add:"+5"%}
                    <li class="page-item"><a class="page-link" href="?{% param_replace page=i %}">{{ i }}</a></li>
                {% endif %}
            {% endfor %}
            {% if match_list.has_next %}
                <li class="page-item">
                    <a class="page-link" href="?{% param_replace page=match_list.next_page_number %}">
                        &raquo;
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <a class="page-link" href="#">
                        &raquo;
                    </a>
                </li>
            {% endif %}
            {% if match_list.paginator.num_pages != match_list.number %}
                <li class="page-item">
                    <a class="page-link" href="?{% param_replace page=match_list.paginator.num_pages %}">
                        Last
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled"><a class="page-link" href="#">Last</a></li>
            {% endif %}
        </ul>
{% endif %}

自定义模板标签

@register.simple_tag(takes_context=True)
def param_replace(context,**kwargs):
    """
  
    """
    d = context['request'].GET.copy()
    for k,v in kwargs.items():
        d[k] = v
    for k in [k for k,v in d.items() if not v]:
        del d[k]
    return d.urlencode()

输出

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?