Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2014 19:24:13

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Троеточие в пагинации

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})

index.html
...
<div class="pagination">
    <ul>
    {% if text.has_previous %}
      <li><a href="?page={{ text.previous_page_number }}">&laquo;</a></li>
    {% else %}
      <li class="disabled"><a href="#">&laquo;</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 }}">&raquo;</a></li>
    {% else %}
      <li class="disabled"><a href="#">&raquo;</a></li>
    {% endif %}
  </ul>
  </div>
Как сделать троеточие если много страниц?
Например:
1 2 3 … 44 45 46 … 100

Отредактировано Rebra4 (Ноя. 3, 2014 19:24:50)

Офлайн

#2 Ноя. 4, 2014 04:33:24

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Троеточие в пагинации

Rebra4
Вы знаете номера первой страницы, текущей и последней. Исходя из этого можно как угодно выстраивать то что вы хотите.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Ноя. 4, 2014 16:52:19

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Троеточие в пагинации

А ещё, возможно вам более понравится вариант, где страницу можно выбрать через select (объект html), а окружать его будут ссылки на первую, предыдущую, следующую и последнюю страницы:
<< < 10 > >>

<< - первая, < - предыдущая, 10 - текущая (селект), ну дальше понятно, да?



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#4 Ноя. 6, 2014 14:13:41

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Троеточие в пагинации

Что-то не выходит! Подскажете пожалуйста алгоритм!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version