Javascript 如果url-django中有参数,如何设置下一页的正确分页href

Javascript 如果url-django中有参数,如何设置下一页的正确分页href,javascript,jquery,html,django,pagination,Javascript,Jquery,Html,Django,Pagination,我在django项目中工作,但我在搜索页面上面临分页问题,如果url中传递了多个参数,那么我如何将它们设置为下一页的href,这里我尝试做的是- {% if is_paginated %} <ul class="pagination pull-right"> {% if page_obj.has_previous %} <li><a href="?q={{ query }}&page={{ pa

我在django项目中工作,但我在搜索页面上面临分页问题,如果url中传递了多个参数,那么我如何将它们设置为下一页的href,这里我尝试做的是-

  {% if is_paginated %}
        <ul class="pagination pull-right">
          {% if page_obj.has_previous %}
            <li><a href="?q={{ query }}&page={{ page_obj.previous_page_number }}">&laquo;</a></li>
          {% else %}
            <li class="disabled"><span>&laquo;</span></li>
          {% endif %}
          {% for i in paginator.page_range %}
            {% if page_obj.number == i %}
              <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
            {% else %}
              <li><a href="?q={{ query }}&page={{ i }}">{{ i }}</a></li>
            {% endif %}
          {% endfor %}
          {% if page_obj.has_next %}
            <li><a href="?q={{ query }}&page={{ page_obj.next_page_number }}">&raquo;</a></li>
          {% else %}
            <li class="disabled"><span>&raquo;</span></li>
          {% endif %}
        </ul>
      {% endif %}
下一页是

http://127.0.0.1:8000/search/products/?q=shirt&page=2

品牌不在那里!!我不可能像在查询中那样将每个参数添加到href,有没有办法只在url末尾添加&page{{I}}?

我使用模板标记来实现这一点:

@register.simple_tag(name='url_replace')
def url_replace(request, field, value):
   print('this is form tag',request,field,value)
   d = request.GET.copy()
   d[field] = value
   return d.urlencode()
在模板中:

    {% if is_paginated %}
        <ul class="pagination pull-right">
          {% if page_obj.has_previous %}
            <li><a href="?{% url_replace request 'page' page_obj.previous_page_number %}">&laquo;</a></li>
          {% else %}
            <li class="disabled"><span>&laquo;</span></li>
          {% endif %}
          {% for i in paginator.page_range %}
            {% if page_obj.number == i %}
              <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
            {% else %}
              <li><a href="?{% url_replace request 'page' i %}">{{ i }}</a></li>
            {% endif %}
          {% endfor %}
          {% if page_obj.has_next %}
            <li><a href="?{% url_replace request 'page' page_obj.next_page_number %}">&raquo;</a></li>
          {% else %}
            <li class="disabled"><span>&raquo;</span></li>
          {% endif %}
        </ul>
      {% endif %}
{%if已分页%}
    {%如果页面_obj.has_previous%}
  • {%else%}
  • « {%endif%} {paginator.page_range%} {%如果页码=i%}
  • {{i}(当前)
  • {%else%}
  • {%endif%} {%endfor%} {%如果页面_obj.has_next%}
  • {%else%}
  • » {%endif%}
{%endif%}
这很好用

    {% if is_paginated %}
        <ul class="pagination pull-right">
          {% if page_obj.has_previous %}
            <li><a href="?{% url_replace request 'page' page_obj.previous_page_number %}">&laquo;</a></li>
          {% else %}
            <li class="disabled"><span>&laquo;</span></li>
          {% endif %}
          {% for i in paginator.page_range %}
            {% if page_obj.number == i %}
              <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
            {% else %}
              <li><a href="?{% url_replace request 'page' i %}">{{ i }}</a></li>
            {% endif %}
          {% endfor %}
          {% if page_obj.has_next %}
            <li><a href="?{% url_replace request 'page' page_obj.next_page_number %}">&raquo;</a></li>
          {% else %}
            <li class="disabled"><span>&raquo;</span></li>
          {% endif %}
        </ul>
      {% endif %}