Если вы хотите получить доступ к данным хранилища в последующем запросе, вам придется их где-то хранить. Django предоставляет несколько способов архивировать это:
1) Вы можете использовать сеансы для хранения запроса: Каждый посетитель, который посещает ваш сайт, получит пустой объект сеанса, и вы можете хранить все, что захотите, внутри этого объекта, что действует как диктат. Недостаток: один посетитель не может одновременно выполнять несколько поисков с нумерацией страниц.
2) Использовать куки: Если вы установите куки, который хранится на стороне клиента, браузер будет добавлять данные куки в каждый запрос, где вы сможете получить к нему доступ. Куки более дружественны к серверу, потому что вам не нужен менеджер сеансов для них на сервере, но данные, хранящиеся в куки, видны (и редактируются) клиенту Недостаток: такой же, как и раньше.
3) Используйте скрытые поля: Вы можете добавить форму с некоторыми скрытыми полями на страницу результатов поиска и сохранить запрос внутри них. Затем клиент будет отправлять запрос каждый раз, когда вы отправляете форму. Недостаток: Вы должны использовать форму с кнопками отправки для разбивки на страницы (простые ссылки не будут работать).
4) Создать ссылки, содержащие запрос: Вместо использования POST вы также можете использовать GET. Например, у вас может быть ссылка типа "/search/hello+world/?order=votes"
и «ссылки на страницы», например "/search/hello+world/2/?order-votes"
. Затем запрос может быть легко извлечен из URL. Недостаток: максимальный объем данных, которые вы можете отправить через GET, ограничен (но это не должно быть проблемой для простого поиска).
5) Используйте комбинацию: Возможно, вы захотите сохранить все данные в сеансе или базе данных и получить к ним доступ через сгенерированный ключ, который вы можете вставить в URL. Тогда URL-адреса могут выглядеть как "/search/029af239ccd23/2"
(для 2-й страницы), и вы можете использовать ключ для доступа к огромному количеству данных, которые вы сохранили ранее. Это устраняет недостаток решения 1, а также решения 4. Новое недостаток: много работы :) 1026 *
6) Использование AJAX: С помощью ajax вы можете хранить данные внутри некоторых js-переменных на стороне клиента, которые затем могут быть переданы другим запросам. А поскольку ajax будет обновлять только ваш список результатов, переменные не теряются.