Форум сайта python.su
views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger def current(request): profile = Knowledge.objects.all() paginator = Paginator(profile, 1) page = request.GET.get('page') try: contacts = paginator.page(page) except PageNotAnInteger: contacts = paginator.page(1) except EmptyPage: contacts = paginator.page(paginator.num_pages) return render_to_response('index.html',{'text':contacts})
... <div class="pagination"> <ul> {% if text.has_previous %} <li><a href="?page={{ text.previous_page_number }}">«</a></li> {% else %} <li class="disabled"><a href="#">«</a></li> {% endif %} {% for num in text.paginator.page_range %} {% ifequal num text.number %} <li class="active"><a href="#">{{ num }}<span class="sr-only">(current)</span></a></li> {% else %} <li><a href="?page={{ num }}">{{ num }}</a></li> {% endifequal %} {% endfor %} {% if text.has_next %} <li><a href="?page={{ text.next_page_number }}">»</a></li> {% else %} <li class="disabled"><a href="#">»</a></li> {% endif %} </ul> </div>
Отредактировано Rebra4 (Ноя. 3, 2014 19:24:50)
Офлайн
Rebra4
Вы знаете номера первой страницы, текущей и последней. Исходя из этого можно как угодно выстраивать то что вы хотите.
Офлайн
А ещё, возможно вам более понравится вариант, где страницу можно выбрать через select (объект html), а окружать его будут ссылки на первую, предыдущую, следующую и последнюю страницы:
<< < 10 > >>
<< - первая, < - предыдущая, 10 - текущая (селект), ну дальше понятно, да?
Офлайн
Что-то не выходит! Подскажете пожалуйста алгоритм!
Офлайн