Actualmente estoy desarrollando una aplicación Django que utilizará la infame técnica de "paginación". Estoy intentando descubrir cómo funciona el módulo django.core.paginator.Paginación Django y "página actual"
Tengo una aplicación con un modelo de pregunta. Voy a enumerar todas las preguntas usando este paginador. Habrá 20 preguntas por página.
def show_question(question_pk):
questions = Question.objects.all()
paginator = Paginator(questions, 20)
page = ... # Somehow figure out which page the question is on
return render_to_response('show_question.html', { 'page' : page })
En la vista, donde enumero las diferentes páginas como "... 2, 3, 4 , 5, 6, ..." Quiero destacar la página actual de alguna manera, al igual que muchas páginas hacer.
En realidad, hay dos cosas que quiero saber:
- ¿Cómo hago Django averiguar qué página de la cuestión se encuentra en?
- ¿Cómo escribiría mi plantilla para "resaltar" correctamente la página visitada actualmente?
EDIT: Lo siento, olvidé una parte de esta pregunta. También me gustaría que cualquier página, excepto la actual, sea un enlace al /questions/{{ that_page.start_index }}
. Entonces, básicamente, cada enlace de página se vincularía a la primera pregunta en esa página.
¿Qué quiere decir que desea todas las páginas excepto la corriente para enlazar a la pregunta en esa página? ¿Cómo cambiará el usuario las páginas? –
No quiero pasar ningún parámetro de solicitud? Page = 4 GET ni nada. Solo usaré/question/4 para la pregunta 4, y luego la vista determinará en qué página está la pregunta. Esta es la razón por la que los enlaces de la página están realmente dirigidos a preguntas. –
¿No cambiaría la primera pregunta en una página a medida que se agregan más preguntas o, posiblemente, se clasifican? Desde una perspectiva REST/HTTP, esto significa que la URL no se refiere a un recurso real. Es por eso que Django usa un parámetro GET: para anotar las características de visualización del recurso que identifica la URL. –