Как сделать пейджинг / разбиение на страницы в Django для сторонних REST-сервисов - PullRequest
1 голос
/ 16 марта 2011

Чтобы использовать flickr в качестве примера, URL-адрес запроса выглядит примерно так:

'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + settings.FLICKR_API_KEY + '&user_id=' + userid + '&format=json&per_page' + per_page + '&page=' + page + '&nojsoncallback=1'

, где page определяет, какую страницу отображать, а per_page - количество возвращаемых фотографий

.

Чтобы упростить ситуацию, давайте исправим per_page.Итак, мой вопрос, как я могу реализовать систему подкачки, которая позволяет пользователю в любой момент перейти на одну страницу вперед или назад на веб-странице?

Полагаю, мне нужно было бы передать номер страницы, чтобы перебрать URL-адрес запроса, чтобы отобразились правильные данные.Так что я думаю, я не уверен, как связать шаблон с views.py.По сути, я ищу Django-версию этого Rails-вопроса .

Примеры и плагины, с которыми я сталкивался (например, django-pagination), в основном касаются нумерации страницзапрос к базе данных.

Ответы [ 2 ]

3 голосов
/ 16 марта 2011

Django-pagination будет работать с любым списком объектов - не только вызовами из базы данных.Пример здесь фактически начинается с примера, который не имеет ничего общего с локальными моделями или базами данных.

Для вызова типа API вам просто нужно прочитать ваши объекты всписок, а затем создать новые объекты Paginator на основе этого списка.Все, что вам нужно сделать, это указать количество объектов на странице.Это действительно очень просто.

0 голосов
/ 16 марта 2011

С вашим описанием, я бы сказал, начните со страницы = 1. Если страница = 1, на вашей странице будет одна ссылка для перехода вперед, которая загрузит страницу = 2. Если вы находитесь на любой другой странице, кроме однойдве ссылки, одна для предыдущей и другая для следующей страницы, относительно текущей.

Если вы хотите лучше помочь, вам действительно нужно показать нам код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...