Форум сайта python.su
0
Привет! Подскажите, как лучше организовать кеширование queryset после того, как бы осуществлен поиск. Сценарий выглядит следующий образом. Пользователь перешелен на страницу поиска по объявлениям. Заполнил поля, нажал кнопку найти. Выполнился запрос в базу данных, вернулся queryset. Здесь я хочу отобразить первые двадцать объявлений на странице и кнопку показать больше. Когда пользователь кликает на кнопку показать больше, я не хочу делать повторный запрос с теми же параметрами, а воспользоваться уже имеющимся queryset из кеша, и взять данные из него. Как лучше всего это организовать?
Заранее благодарю.
Офлайн
22
можно же из БД получить только 20 записей.
Пользователь нажал показать больше, будет запрос в бд на следующие 20 записей.
не подходит такой вариант?
Офлайн
0
ilnur, спасибо за ответ! Я как-то этот вариант пропустил совсем. Я правильно понимаю, что pgsql поддерживает select с limit и offset? И это решение самое удобное, вместо того, чтобы кешировать весь результат, а потом считывать с него? :-)
Офлайн
568
Блин, ну в Джанге же есть Paginator, который всё решает,
читайте тут
Офлайн
35
Это читали: https://docs.djangoproject.com/en/1.6/topics/db/queries/#caching-and-querysets
Офлайн
0
Спасибо всем за ответы. Читаю базу.
Офлайн