У меня есть приложение django, которое выполняет фильтрацию и возвращает данные, используя нумерацию страниц. Вот пример вида
def sample(request):
v = request.GET.get('v')
# DB querying and filtering here with v-value
# pagination here
return render_to_response(template_name, locals(),
context_instance = RequestContext(request)
Итак, это пример того, как будет выглядеть диспетчер URL для этого представления:
http://sample.com/v=1
Это, по сути, отфильтровывает базу данных и возвращает данные, используя нумерацию страниц. Проблема возникает, когда я использовал нумерацию страниц Django и пытался получить страницы> 1. Например, нажатие следующей кнопки нумерации страниц принесло бы: http://sample.com/?page=2.
Быстро, вы можете увидеть, где я потерял значение фильтра из предыдущего запроса (v = 1). Мое представление заканчивает тем, что выбрасывает и выдает ошибку, потому что никакие значения для v не задаются как на странице 1. Я рассмотрел использование request.get_absolute_url () в представлении и синтаксический анализ параметров запроса url, чтобы восстановить отфильтрованный запрос GET в представлении, но это не работает, как ожидалось. Как я могу постоянно устанавливать это значение для каждого последующего вызова представления в пагинации? Например, страница 2 будет http://sample.com/v=1?page=2.
Моя проблема не так проста: у меня есть 4-5 различных параметров запроса, которые обрабатывает представление.