假设我有一个像
这样的网址www.mysite.com/?param_1=val_1¶m_2=val_2
在我的模板中,我有一个与这些参数对应的链接列表。
我如何获取此网址并添加或修改参数,因此我不必每次都提交获取请求,只是传递新网址?
示例:
<a href="www.mysite.com/?param_1=val_1¶m_2=val_2_modified">val_2_modified</a>
<a href="www.mysite.com/?param_1=val_1¶m_2=val_2¶m_3=new_val">new_val</a>
依旧......
答案 0 :(得分:4)
https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/views/main.py#L152
from django.utils.http import urlencode
def get_query_string(params, new_params=None, remove=None):
if new_params is None: new_params = {}
if remove is None: remove = []
p = params.copy()
for r in remove:
for k in p.keys():
if k.startswith(r):
del p[k]
for k, v in new_params.items():
if v is None:
if k in p:
del p[k]
else:
p[k] = v
return '?%s' % urlencode(p)
# get_query_string(dict(request.GET.items()), {'param_2': 'val_2_modified', 'param_3': 'new_val'})
要在模板中使用它,只需编写模板标签(我已经忘记了如何为django编写模板标签)。