Я использую код из документации к постраничным данным:пейджинга в Джанго - исходная строка запроса потеряется
try:
data = paginator.page(request.GET.get('page'))
except PageNotAnInteger:
page = 1
data = paginator.page(1)
except EmptyPage:
data = paginator.page(paginator.num_pages)
и страница:
<div class="pagination">
<span class="step-links">
{% if data.has_previous %}
<a href="?page={{ data.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
<b>Page</b> {{ data.number }} of {{ data.paginator.num_pages }}
</span>
{% if data.has_next %}
<a href="?page={{ data.next_page_number }}">next</a>
{% endif %}
</span>
</div>
Но есть ошибка здесь: когда url содержит строку запроса и один щелчок на Pager, исходная строка запроса теряется. Например:
example.com?var1=33&var2=44
, а затем, когда один нажимает на "page2", URL-адрес становится
example.com?page=2 # var1=33&var2=44 is lost
вместо:
example.com?var1=33&var2=44&page=2
я не нашел ни стандарта, ни простой способ его исправить. Как я могу это сделать?
UPDATE:
конечно, имена параметров, их значения и ли они существуют или нет, не известно.
Я использовал один из двух простых решений, упомянутых [здесь] (https://simpleisbetterthancomplex.com/snippet/2016 /08/22/dealing-with-querystring-parameters.html). Кроме того, важно отметить, что решение javascript (как предлагается в нескольких сообщениях SO) может работать здесь, но может повлиять на SEO, поскольку ссылки на страницы не будут настоящими URL-адресами в этом случае – Anupam