django - Django URL 参数相互替换
问题描述
也许我的问题看起来有些简单易懂,但即便如此。
在我的项目中,我使用标准的分页和排序。
问题是它们在获取请求中相互替换,例如我对它们进行排序,如果我转到第二页,则该集合未排序。我明白原因,似乎答案就在上面,但即便如此我还是找不到。
排序:
<a href="?order_by=counter__service__name_service&sort={{ sort_type }}">Counter</a>
分页示例:
<a class="page-link" href="?page={{ history_application.previous_page_number }}">«</a>
问题是如何保存之前传输的参数。
解决方案
尝试使用 Django 模板标签来更新当前request.GET
参数并使用urllib.urlencode
.
创建模板标签:
# templatetags.app_tags
import urllib
@register.simple_tag(takes_context=True)
def url_add_query(context, **kwargs):
""" Updates the current path from existing GET parameters. """
request = context.get('request')
get = request.GET.copy()
get.update(kwargs)
return u'{path}?{params}'.format(path=request.path,
params=urllib.urlencode(get, 'utf-8'))
在您的 HTML 模板上:
{% load app_tags %}
<a href="{% url_add_query page=history_application.previous_page_number %}">«</a>
推荐阅读
- python - python Flask SocketIO 用 eventlet 抛出 SSL 错误
- java - 在循环中运行方法以从数组列表中获取 Max、Min
- google-apps-script - Google表格中的Google App Script - 在列中查找相同的值并将数据行作为变量获取
- php - PHP:在第 n 次出现后插入 HTML标签
- php - Laravel vue 在 api 路由中返回 401 错误
- r - r - 从分组值列表中删除异常值
- reactjs - 如何将 React HOC 与 Typescript 一起使用
- reactjs - Reactjs - 根据传递的属性选择具有不同第一个选项的框
- mysql - MYSQL - 无法与 Group By 2 Columns 正确连接
- javascript - 如何在下拉列表中动态显示多个复选框列表