Этого можно добиться, включив сеансы.
Я рекомендую прочитать главу Сессии, пользователи и регистрация на веб-сайте djangobook.
Edit: теперь, когда вы включили сессии, я думаю, что проблема заключается в гиперссылках в шаблоне. Используйте амперсанд для разделения нескольких параметров в URL, например
<a href="?p={{ request.session.per_page }}&page={{ items.next_page_number }}">next</a>
Редактировать 2: Я не уверен, понимаю ли я, в чем проблема с истечением сессии. Строка, которая устанавливает срок действия сеанса при закрытии браузера, равна request.session.set_expiry(0)
. См. Документацию django по Использование сессий в представлениях , если вы хотите изменить это.
Чтобы создать страницу в стиле Digg, вам нужно написать функцию, которая принимает текущий номер страницы и общее количество страниц и возвращает список номеров страниц. Затем в шаблоне прокрутите номера страниц и создайте ссылки на страницы.
Список списков номеров страниц позволит вам разбить номера страниц на группы, например
[[1,2], [20,21,22,23,24], [30,31]]