Używam paginatora django w szablonie. Działa dobrze, ale nie jest dobre, gdy jest duża liczba stron.Wyświetl tylko niektóre numery stron według paginacji django
views.py:
def blog(request):
blogs_list = Blog.objects.all()
paginator = Paginator(blogs_list, 1)
try:
page = int(request.GET.get('page', '1'))
except:
page = 1
try:
blogs = paginator.page(page)
except(EmptyPage, InvalidPage):
blogs = paginator.page(page)
return render(request, 'blogs.html', {
'blogs':blogs
})
fragment szablonu:
<div class="prev_next">
{% if blogs.has_previous %}
<a class="prev btn btn-info" href="?page={{blogs.previous_page_number}}">Prev</a>
{% endif %}
{% if blogs.has_next %}
<a class="next btn btn-info" href="?page={{blogs.next_page_number}}">Next</a>
{% endif %}
<div class="pages">
<ul>
{% for pg in blogs.paginator.page_range %}
{% if blogs.number == pg %}
<li><a href="?page={{pg}}" class="btn btn-default">{{pg}}</a></li>
{% else %}
<li><a href="?page={{pg}}" class="btn">{{pg}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
<span class="clear_both"></span>
</div>
Teraz wygląda to tak:
Co mam zrobić, aby wyświetlić tylko 7 numery stron i nie wszystkie z nich, począwszy od bieżącego numeru strony, na przykład:
Prev 1 (2) 3 4 5 Next
Mam nadzieję, że było jasne, jeśli nie, proszę zapytać. Twoja pomoc i wskazówki będą bardzo cenne. Dziękuję Ci.
przykro mi, nie po ciebie. Czy mógłbyś rozwinąć nieco więcej. – Robin
@Robin, zobacz moje zmiany. – Blackeagle52
Świetnie! Zadziałało! Dziękuję Ci. – Robin