将先前的参数传递给下一个django模板请求

时间:2012-08-25 21:46:03

标签: python django django-templates parameter-passing

我有一个按特定顺序列出多个项目的项目。此顺序由通过参数传递的两个变量确定:

<a class="btn btn-info" href={{ request.path }}?key={{ key }}&orientation={{ orientation }}><i class="icon-wrench icon-large"></i></a>

“key”是项目特征,“orientation”是升序或降序。 python代码处理传递回模板的项的排序。

我有另一个需要传递时间限制的控件:

<a href={{ request.path }}?time={{ time }}>{{ value }}</a>

时间是分钟数。

此处的问题是,如果用户单击排序链接然后单击时间链接,{{request.path}}将仅包含“正确路径”,而不包括已添加的其他参数。

第一次点击会产生类似

的内容
/list/items/?key=importance&orientation=asc

但第二次点击会返回

/list/items/?time=30

我反而希望返回

/list/items/?key=importance&orientation=asc&time=30

现在我可以用它代替

<a href={{ request.get_full_path }}?time={{ time }}>{{ value }}</a>

但是如果多次点击时间链接,我最终会得到这样的结果:

/list/items/?key=importance&orientation=asc&time=30&time=60&time=15

当我想要覆盖此类型的原始参数时,相同类型的多个参数。

如何解决此问题。我想保留所有不属于点击链接传递类型的参数。

1 个答案:

答案 0 :(得分:1)

您可以使用此代码段http://djangosnippets.org/snippets/2105/。例如:

{% load add_get_parameter %}
<a href="{% add_get_paramater param1='const_value',param2=variable_in_context %}">
    Link with modified params
</a>