Django GET запрашивает постоянство данных с пагинацией - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть приложение 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 различных параметров запроса, которые обрабатывает представление.

...