Я использую разбиение на django pagination, но у меня возникла путаная проблема, когда всякий раз, когда page=1
, а затем общее количество страниц получает 1.всякий раз, когда номер страницы равен 1, num_pages всегда получает 1, когда номер страницы больше 1, он отлично работает
Когда страница больше 1, общее количество страниц возвращает правильное количество страниц.
Например,
Когда я прошу http://127.0.0.1:8000/circle_admin/circle/1/posts?page=1
Page {{ page_obj.number }} of {{ paginator.num_pages }}
является Страницы 1 из 1
Когда я прошу http://127.0.0.1:8000/circle_admin/circle/1/posts?page=2
Page {{ page_obj.number }} of {{ paginator.num_pages }}
является Страница 2 из 4
PostView
class PostView(LoginRequiredMixin, generic.ListView):
template_name = 'circleadmin/circle_posts.html'
model = Post
queryset = Post.objects.all()
paginate_by = 5
def get_queryset(self):
return super(PostView, self).get_queryset().filter(circle=self.kwargs['circle_id'], is_removed=False).order_by('-updated_time')
template.html
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
Я использую Python 2.7 и Django 1.8.3
У кого-нибудь есть идея? Спасибо за любой ответ.
Я думаю, что существует опечатка вашего класса = "текущий" html-тег. это должно быть {{page_obj.num_pages}} –