javascript - 如何向现有 url 添加参数?...Django...Paginator
问题描述
我制作了一个页面,其中显示了数据库中的一些数据。我在我的网站上添加了一个分页器。我的网站也有一个搜索栏。所以当用户搜索某些东西时...... URL是......
.../search/?q=xyz
所以当我对搜索到的数据进行分页时......
<a href="?page={{ walls.next_page_number }}"> next page </a>
它使 URL 为...
.../search/?page=2
但这是一个错误......但是,我想要这样的东西......
.../search/?q=xyz&page=2
我怎样才能做到这一点...
解决方案
您可以使用模板标签将获取参数动态组合到分页器。
这是我如何执行此操作的示例;
from django import template
from django.utils.http import urlencode
register = template.Library()
@register.simple_tag(takes_context=True)
def url_replace(context, **kwargs):
query = context['request'].GET.dict()
query.update(kwargs)
return urlencode(query)
{% load url_replace %}
<div class="pagination-container">
<ul class="pagination">
{% if page_obj.has_previous %}
<li class="pagination-item">
<a href="?{% url_replace page=1 %}">first</a>
</li>
<li class="pagination-item">
<a href="?{% url_replace page=page_obj.previous_page_number %}">previous</a>
</li>
{% endif %}
<li class="pagination-item">
<span class="current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
</li>
{% if page_obj.has_next %}
<li class="pagination-item">
<a href="?{% url_replace page=page_obj.next_page_number %}">next</a>
</li>
<li class="pagination-item">
<a href="?{% url_replace page= page_obj.paginator.num_pages %}">last</a>
</li>
{% endif %}
</ul>
</div>
推荐阅读
- reactjs - 如何在 React 中编辑输入?
- flutter - Flutter FutureBuilder 和 ListTile 创建
- mongodb - 使用 skip() 和 limit() 实现分页时检查是否有更多文档
- firebase - Flutter 应用 MultiProvider 与 StreamProviders 相互依赖
- sqlite - 如何在 SQLite 中使用连接运算符
- postgresql - 如何使用 Sequelize 在 postgresql 中插入批量上传?
- c++ - 如何让两个用不同语言编写的不同程序进行链接?
- javascript - Clojurescript 与 ProseMirror 互操作
- python - 如何为功能文件创建步骤定义(使用语言:python,包:行为,扩展:黄瓜,编辑器:vs 代码)?
- visual-studio-code - vscode 无法打开弧度(Linux、Manjaro)