我的网站上有一个多标签过滤系统,即我可以点击标签过滤“foo”,然后点击另一个标签过滤“bar”。当我点击标签时,它会在网址上附加一个参数:
然后,用于过滤的当前标签显示在页面顶部。我需要能够单击标记,并从URL中删除其关联的参数。如果我点击“b”给出的网址上的“bar”标签,我希望网址为“a”。我该如何操纵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 :(得分: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,因为它更灵活。