1

我的网站上有一个多标签过滤系统,即我可以单击一个标签按“foo”过滤,然后单击另一个标签也按“bar”过滤。当我单击标签时,它会在 url 中附加一个参数,如下所示:

然后,用于过滤的当前标签显示在页面顶部。我需要能够单击一个标签,并从 url 中删除其相关参数。如果我在“b”给出的 url 上单击“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 %} 
4

1 回答 1

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,因为它更加灵活。

于 2013-06-25T17:50:22.727 回答