2010-07-29 2 views
0

На одной из моих страниц я хотел бы отобразить подмножество отсортированного списка объектов. Весь список релевантных объектов чрезвычайно длинный и имеет хорошие шансы на изменение, когда пользователь просматривает страницу. Я не возражаю, что страница не обновлена, но мне нужно убедиться, что когда пользователь перейдет на следующую страницу, пользователь увидит следующие n объектов из исходного отсортированного списка. Таким образом, из-за потенциально измененных данных использование django в разбивке по страницам или действительно хорошая библиотека, например Django-endless-pagination, не вернет правильные результаты при переходе на «следующую страницу».Django Pagination on Changing Queryset

Чтобы привести пример того, что я имею в виду, скажем, у нас есть объекты [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] и хотим отображать 5 страниц, сортируются от малого к большому. Первая страница будет выглядеть следующим образом:

1, 2, 3, 4, 5.

Но во время просмотра этой страницы, 3 и 4 были удалены. Если мы идем в «следующей» страницы, нумерация страниц будет повторно запрашивать набор и вернуться:

8, 9, 10, 11, 12

Я понимаю, что это ожидаемое поведение PAGINATION, но я хотел бы получить самый простой способ сделать следующий дисплей страницы:

6, 7, 8, 9, 10

наиболее очевидным решением является какой-то сторона клиента пагинации, и я понимаю, что это nice jquery library для этого, но количество объектов может быть потенциально слишком большим, чтобы это решение было реалистичным.

Есть ли простой подход к разбиению на страницы в наборе запросов и продолжать использовать результаты, возвращенные из этого исходного набора запросов, вместо повторной выборки набора запросов, которые могут быть изменены?

Спасибо за понимание, которое вы можете мне дать!

ответ

3

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

Проблема заключается в том что это будет работать, только если добавляемые/измененные элементы являются только первыми элементами в списке

+0

+1 для приятного предложения и указания его ловушки. Точно так же я мог бы сохранить значение верхней записи на следующей странице и получить все результаты, которые придут после этого. – Spike

+0

Я собираюсь отметить это как принятое, потому что вы единственный, кто поможет мне в этом, и ваше предложение довольно хорошее. Так что спасибо! – Spike

+0

Да, это более или менее то, что я имел в виду, рада помочь, и спасибо за голосование (значит, я могу сейчас прокомментировать и проголосовать :)) – Hugoagogo