分页清除了我的其他搜索参数

如何解决分页清除了我的其他搜索参数

对于我在 Django 中的程序,我的 HTML 文件中有以下分页部分

{% if player_list.has_other_pages %}
  <ul class="pagination" style="border: 1px solid #ddd;">
    {% if player_list.has_prevIoUs %}
      <li><a href="?ppage={{ player_list.prevIoUs_page_number }}">&laquo;</a></li>
    {% else %}
      <li class="disabled"><span>&laquo;</span></li>
    {% endif %}
    {% for i in player_list.paginator.page_range %}
      {% with ppage_number=player_list.number radius=8 %}
      {% if i >= ppage_number|sub:radius %}
      {% if i <= ppage_number|add:radius %}
        {% if player_list.number == i %}
          <li class="active" style="border: 1px solid #ddd;"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
        {% else %}
          <li style="border: 1px solid #ddd;"><a href="?ppage={{ i }}">{{ i }}</a></li>
        {% endif %}
      {% endif %}
      {% endif %}
      {% endwith %}
    {% endfor %}
    {% if player_list.has_next %}
      <li><a href="?ppage={{ player_list.next_page_number }}">&raquo;</a></li>
    {% else %}
      <li class="disabled"><span>&raquo;</span></li>
    {% endif %}
  </ul>
{% endif %}

因此,当我按下任何分页按钮时,它会使用搜索参数 ppage=###(其中 ### 是某个数字)调用页面。但是,它会清除我在 url 中按下按钮的所有搜索参数,无论如何我可以让它保留其他搜索参数吗?

这是被调用的视图函数

.
.
.
# player request parameters
    player_page = request.GET.get('ppage',1)
    player_first_name = request.GET.get('pfname',None)
    player_last_name = request.GET.get('plname',None)
    player_is_active = request.GET.get('pisactive',None)

    # filter based on search parameters if exist and page
    players = Player.objects.all()
    if (player_first_name != None and player_first_name != ''):
        players = players.filter(first_name__contains=player_first_name)
    if (player_last_name != None and player_last_name != ''):
        players = players.filter(first_name__contains=player_last_name)
    if (player_is_active != None and player_is_active != ''):
        players = players.filter(first_name__contains=player_is_active)
    player_paginator = Paginator(players,50)
.
.
.

如果url有?pfname=Chris,按下按钮后搜索参数消失

解决方法

您需要将 QueryDict 传递回模板并重新呈现查询字符串,page 部分除外,因此:

def my_view(request):
    qd = request.GET.copy()
    qd.pop('ppage',None)
    # …
    context = {
        # …,'qd': qd
    }
    return render(request,'name-of-template.html',context)

在模板中,然后使用以下内容呈现网址:

<a href="?ppage={{ i }}&{{ qd.urlencode }}">

所有其他链接都类似。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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元字符(。)和普通点?