Переписал функцию
def category(reguest, slug):
context_dict = {}
try:
category = Category.objects.get(slug=slug)
context_dict['category_name'] = category.name
object = BlogPost.objects.filter(category=category)
paginator = Paginator(object, 2)
try:
page = request.GET.get('page')
except:
page = 1
try:
objects = paginator.page(page)
except(EmptyPage, InvalidPage):
objects = paginator.page(paginator.num_pages)
context_dict['objects'] = objects
context_dict['category'] = category
context_dict['pages'] = paginator.page(page)
except Category.DoesNotExist:
pass
return render(reguest, 'category.html', context_dict)
вывод в шаблон
<div class="row">
<div class="col-lg-12" align="center">
<ul class="pagination">
{% if objects.has_previous %}
<li class="arrow"><a href="/blog/category/{{ objects.previous_page_number }}/">«</a></li>
{% else %}
<li class="disabled"><a href="">«</a></li>
{% endif %}
{% for pag in objects.paginator.page_range %}
{% if pag == objects.number %}
<li class="active"><a href="/blog/category/{{ category.slug }}/?page={{ pag }}">{{ pag }}</a></li>
{% else %}
<li><a href="/blog/category/{{ category.slug }}/?page={{ pag }}">{{ pag }}</a></li>
{% endif %}
{% endfor %}
{% if objects.has_next %}
<li class="arrow"><a href="/blog/category/{{ objects.next_page_number }}/">»</a></li>
{% else %}
<li class="disabled"><a href="">»</a></li>
{% endif %}
</ul>
</div>
</div>
урл
url(r'^category/(?P<slug>[-\w]+)/$', views.category, name='category'),
все равно дальше первой страницы не идет, хотя ссылка меняется, если навести курсор на номера страниц то идет от 1 и т.д.
127.0.0.1:8000/blog/category/django/?page=2
где косяк?
В общем сам решил, теперь все работает. Вот код который работает, возможно кому то пригодится!
Функция.
def category(reguest, slug):
category = Category.objects.get(slug=slug)
post = BlogPost.objects.filter(category=category)
paginator = Paginator(post, 2)
page = reguest.GET.get('page')
try:
post = paginator.page(page)
except PageNotAnInteger:
post = paginator.page(1)
except EmptyPage:
post = paginator.page(paginator.num_pages)
return render(reguest, 'category.html', {
'category': category,
'page': page,
'post': post})
Вывод в шаблон.
<div class="row">
<div class="col-lg-12" align="center">
<ul class="pagination">
{% if post.has_previous %}
<li class="arrow"><a href="/blog/category/{{ category.slug }}?page={{ pag }}{{ post.previous_page_number }}">«</a></li>
{% else %}
<li class="disabled"><a href="">«</a></li>
{% endif %}
{% for pag in post.paginator.page_range %}
{% if pag == post.number %}
<li class="active"><a href="/blog/category/{{ category.slug }}?page={{ pag }}">{{ pag }}</a></li>
{% else %}
<li><a href="/blog/category/{{ category.slug }}?page={{ pag }}">{{ pag }}</a></li>
{% endif %}
{% endfor %}
{% if post.has_next %}
<li class="arrow"><a href="/blog/category/{{ category.slug }}?page={{ pag }}{{ post.next_page_number }}">»</a></li>
{% else %}
<li class="disabled"><a href="">»</a></li>
{% endif %}
</ul>
</div>
</div>
Урл
url(r'^category/(?P<slug>[-\w]+)/$', views.category, name='category'),