Хм ... Я вижу из вашего комментария, что вы не хотите использовать параметр ol GET, который был написан для использования django.core.paginator Чтобы сделать то, что вы хотите, я не могу придумать лучшего способа, чем предварительно вычислить страницу, на которой находится каждый вопрос. Например, ваше представление в конечном итоге будет выглядеть примерно так:
ITEMS_PER_PAGE = 20
def show_question(question_pk):
questions = Question.objects.all()
for index, question in enumerate(questions):
question.page = ((index - 1) / ITEMS_PER_PAGE) + 1
paginator = Paginator(questions, ITEMS_PER_PAGE)
page = paginator.page(questions.get(pk=question_pk).page)
return render_to_response('show_question.html', { 'page' : page })
Чтобы выделить текущую страницу в шаблоне, вы должны сделать что-то вроде
{% for i in page.paginator.page_range %}
{% ifequal i page.number %}
<!-- Do something special for this page -->
{% else %}
<!-- All the other pages -->
{% endifequal %}
{% endfor %}
Что касается предметов, у вас будет два разных объектных списка для работы ...
page.object_list
будет объектами на текущей странице, а
page.paginator.object_list
будет все объекты, независимо от страницы. Каждый из этих элементов будет иметь переменную "page", которая сообщит вам, на какой странице они находятся.
Все это говорит о том, что вы делаете, звучит нетрадиционно. Вы можете переосмыслить, но в любом случае, удачи.