2013-06-25 41 views
1

我在我的网站上有一个多标签过滤器系统,即我可以点击一个标签以“foo”过滤,然后点击另一个标签以“bar”过滤。当我点击标签,其附加参数的URL,因为这样的:删除从URL点击参数

然后,用于过滤的当前标签显示在页面的顶部。我需要能够点击一个标签,并从网址中删除相关的参数。如果我点击“b”给出的网址上的“bar”标签,我会期望url为“a”。我该如何操作URL?

目前,如果您单击一个标签,它会从筛选器中删除所有标签(只是简单地重定向回主域),因为我一直无法找到更好的方式来使用url。

编辑: 添加标签

{% for tag in value.tags %} 
    {% if tag.name %} 
     <a href="{{ request.get_full_path }}?tag={{ tag.name.strip }}"> 
     {{ tag.name }} 
     </a> 
    {% endif %} 
{% endfor %} 

删除

{% for tag in tag_filters %} 
    <a href='/'> 
    {{ tag }} 
    </a> 
{% endfor %} 
+0

目前为止你有什么代码? – Aya

回答

1

像这样的东西应该工作...

{% for tag in tag_filters %} 
    {% with "/?tag="|add:tag as to_cut %} 
    <a href='{{ request.get_full_path|cut:to_cut }}'> 
    {% endwith %} 
    {{ tag }} 
    </a> 
{% endfor %} 

...虽然这可能会得到更好的解决单个查询参数,可以采取多个字符串,如...

http://www.domain.com/?tags=foo+bar+baz 

...并使用JavaScript来操纵URL,因为它更加灵活。

+0

我想我可能会使用单个查询字符串,但我还不确定(在预先存在的结构中工作)。谢谢! –