Найти - Пользователи
Полная версия: Троеточие в пагинации
Начало » Django » Троеточие в пагинации
1
Rebra4
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
JOHN_16
Rebra4
Вы знаете номера первой страницы, текущей и последней. Исходя из этого можно как угодно выстраивать то что вы хотите.
Master_Sergius
А ещё, возможно вам более понравится вариант, где страницу можно выбрать через select (объект html), а окружать его будут ссылки на первую, предыдущую, следующую и последнюю страницы:
<< < 10 > >>

<< - первая, < - предыдущая, 10 - текущая (селект), ну дальше понятно, да?
Rebra4
Что-то не выходит! Подскажете пожалуйста алгоритм!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB