2013-06-25 2 views
1

У меня на моем веб-сайте есть система фильтрации нескольких тегов, т. Е. Я могу щелкнуть тег для фильтрации с помощью «foo», а затем щелкнуть по другому тегу, чтобы фильтровать «бар». Когда я нажимаю тег, он добавляет параметр к URL-адресу, например:Удаление параметра из URL-адреса при щелчке

Затем текущие теги, используемые для фильтрации, отображаются в верхней части страницы. Мне нужно иметь возможность щелкнуть тег и удалить связанный с ним параметр из URL-адреса. Если бы я нажал тег «bar» в URL-адресе, указанном «b», я бы ожидал URL-адрес «a». Как я могу манипулировать URL как таковым?

В настоящее время, если вы щелкнете тег, он удалит ВСЕ теги из фильтра (просто перенаправление обратно в основной домен), потому что я не смог найти лучший способ играть с URL-адресом.

EDIT: Добавить тег

{% 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

Думаю, я могу использовать одиночный запрос, но пока не уверен (работает в уже существующей структуре). Благодаря! –

Смежные вопросы