У меня возникают проблемы с использованием разбивки на страницы в Django. В качестве примера возьмите URL-адрес ниже:
http://127.0.0.1:8000/users/?sort=first_name
На этой странице я сортирую список пользователей по их первому имени. Без переменной типа GET он по умолчанию сортирует по id.
Теперь, если я нажму следующую ссылку, я ожидаю следующий URL:
http://127.0.0.1:8000/users/?sort=first_name&page=2
Вместо этого я теряю все переменные get и заканчиваю
http://127.0.0.1:8000/users/?page=2
Это проблема, потому что вторая страница сортируется по id вместо first_name.
Если я использую request.get_full_path, я в конечном итоге получаю уродливый URL:
http://127.0.0.1:8000/users/?sort=first_name&page=2&page=3&page=4
Какое решение? Есть ли способ получить доступ к переменным GET в шаблоне и заменить значение для страницы?
Я использую разбиение на страницы, как описано в документации Django, и я предпочитаю продолжать использовать его. Код шаблона, который я использую, аналогичен этому:
{% if contacts.has_next %}
<a href="?page={{ contacts.next_page_number }}">next</a>
{% endif %}