У меня есть список пользовательских профилей, которые я хочу иметь возможность сортировать и фильтровать.
Мне удалось сделать это вручную, вручную введя URL-адреса, но я не смог закодировать страницу шаблона, чтобы разрешить сохранение ранее примененного фильтра или сортировки.Вот код URL и шаблон, который у меня есть на данный момент -
# in urls
url(r'^talent/filter\:(?P<position>[A-Za-z]+)/sort\:(?P<sort>[A-Za-z]+)$', 'talent_filter', name='talent_filter_sort'),
url(r'^talent/filter\:(?P<position>[A-Za-z]+)/$', 'talent_filter', name='talent_filter'),
url(r'^talent/sort\:(?P<sort>[A-Za-z]+)/$', 'talent_sort', name='talent_sort'),
url(r'^talent/$', 'talent', name='talent'),
# in template
<ul>
<li>SORT BY:</li>
<li><a href = "{% url talent_sort sort='alphabetical'%}">Alphabetical</a></li>
...
</ul>
<ul>
<li><a href = '{% url talent_filter position=position%}'>{{ position }}</a></li>
...
</ul>
В настоящее время, если я нахожусь на странице талантов (не отсортированных, нефильтрованных) и выбираю фильтр результатов, он вернется talent/filter:filter
.Затем, если я выберу сортировку результатов, она (очевидно) переходит к talent/sort:sort
, удаляя предыдущий фильтр.
Что я хочу сделать, так это то, что если я в данный момент на talent/filter:filter
и выбираю метод сортировки, он перейдет к talent/filter:filter/sort:sort
, и если я уже отсортировал результаты (talent/sort:sort
), и нажмитена фильтре, это также приведет меня к talent/filter:filter/sort:sort
.Как бы я этого достиг.Спасибо.