Skip to main content

一组用于从 url 追加、删除或替换查询字符串参数的工具(最初由 Sophilabs 创建)

项目描述

从 url 中追加、删除或替换查询字符串参数(保留顺序)。最初由 Sophilabs 创建 - https://github.com/sophilabs/django-qurl-templatetag

安装

pip install -e git+https://github.com/obiwanus/django-qurl.git#egg=django-qurl

模板中的使用

例子:

{% load qurl %}

{% qurl '/search?page=1&color=blue&color=green' order=name page-- color+=red color-=green %}
Output: /search?color=blue&order=name&color=red

{% qurl request.get_full_path order='name' %}
Output: /your/current/path/?order=name

参数:

name=value: replace all values of name by one value
name--: remove all values of name
name+=value: append a new value for name
name-=value: remove the value of name with the value

在模板标签中使用反向:

{% qurl 'url_name' [reverse_params] | order=name color+=red color+=green %}
Output: /reversed/url/?order=name&color=red&color=green

反向语法与标准 Django {% url %} 标记中的语法完全相同。

视图中的用法

例子:

from qurl import qurl

url = '/testurl/1/'
qurl(url, add={'a': 'a1', 'b': ['b1', 'b2']})
# Output: /testurl/1/?a=a1&b=b1&b=b2

url = '/testurl/1/?a=a1&b=b1&b=b2'
qurl(url, add={'a': 'a2'}, remove=['b'])
# Output: /testurl/1/?a=a2

url = '/testurl/1/?a=a1&b=b1&b=b2'
qurl(url, add={'a': ['a2']}, remove=['b'])
# Output: /testurl/1/?a=a1&a=a2

url = '/testurl/1/?a=a1&b=b1&b=b2'
qurl(url, exclude={'b': 'b2'}, add={'a': 'a2'})
# Output: /testurl/1/?a=a1&a=a2&b=b1

# You can use request.GET as a base
url = '/testurl/1/'
qurl(url, add=request.GET, exclude={'b': 'b1'}

笔记:

如果要为参数分配特定值(替换所有现有值),请使用add={'param': 'value'}

如果您想为已经存在的值添加值,请使用 add={'param': ['value']}。当然,您可以添加多个值。

请检查测试以获取更多使用示例。

运行测试

请确保已安装 tox 并从命令行 运行tox

源代码托管在 Github:https ://github.com/obiwanus/django-qurl/

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-qurl-0.1.1.tar.gz (3.8 kB 查看哈希)

已上传 source