Python 分页已在Django应用程序上停止工作

Python 分页已在Django应用程序上停止工作,python,django,pagination,Python,Django,Pagination,我是Django的新手,刚读了一本书《Django 2示例》。我遵循了教程中的所有代码,但是有什么东西破坏了这行的分页,我就是不知道它是什么。在我的博客底部,我得到了一个“第1页,共1页”的输出。而不是“第1页,共1页”。在下面找到我的一些代码:。注意:请忽略代码中的缩进。谢谢 视图.py from django.shortcuts import render, get_object_or_404 from django.core.paginator import Paginator, Em

我是Django的新手,刚读了一本书《Django 2示例》。我遵循了教程中的所有代码,但是有什么东西破坏了这行的分页,我就是不知道它是什么。在我的博客底部,我得到了一个“第1页,共1页”的输出。而不是“第1页,共1页”。在下面找到我的一些代码:。注意:请忽略代码中的缩进。谢谢

视图.py

 from django.shortcuts import render, get_object_or_404
 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 from django.views.generic import ListView
 from django.core.mail import send_mail
 from django.db.models import Count
 from taggit.models import Tag
 from .models import Post, Comment
 from .forms import EmailPostForm, CommentForm



 def post_list(request, tag_slug=None):
    object_list = Post.published.all()
    tag = None`

    if tag_slug:
    tag = get_object_or_404(Tag, slug=tag_slug)
    object_list = object_list.filter(tags__in=[tag])

    paginator = Paginator(object_list, 3) # 3 posts in each page
    page = request.GET.get('page')
    try:
         posts = paginator.page(page)
    except PageNotAnInteger:
    # If page is not an integer deliver the first page
         posts = paginator.page(1)
    except EmptyPage:
    # If page is out of range deliver last page of results
         posts = paginator.page(paginator.num_pages)
    return render(request,
              'blog/post/list.html',
              {'page': page,
               'posts': posts,
               'tag' : tag})
list.html

{% extends "blog/base.html" %}

{% block title %}My Blog{% endblock %}

{% block content %}
 <h1>My Blog</h1>
 {% if tag %}
 <h2>Posts tagged with "{{ tag.name }}"</h2>
 {% endif %}
 {% for post in posts %}
 <h2>
  <a href="{{ post.get_absolute_url }}">
    {{ post.title }}
  </a>
 </h2>
 <p class="tags">
  Tags:
  {% for tag in post.tags.all %}
    <a href="{% url "blog:post_list_by_tag" tag.slug %}">
      {{ tag.name }}
    </a>
    {% if not forloop.last %}, {% endif %}
  {% endfor %}
</p>
<p class="date">
  Published {{ post.publish }} by {{ post.author }}
</p>
{{ post.body|truncatewords:30|linebreaks }}
 {% endfor %}
 {% include "pagination.html" with page=page_obj %}
{% endblock %}
{%extends“blog/base.html”%}
{%block title%}我的博客{%endblock%}
{%block content%}
我的博客
{%if标记%}
用“{tag.name}}”标记的帖子
{%endif%}
{posts%%中的post为%s}

标签: {post.tags.all%中标记的%s} {%if不是forloop.last%},{%endif%} {%endfor%}

由{post.author}出版{{post.publish}}

{{post.body | truncatewords:30 | linebreaks}} {%endfor%} {%include“pagination.html”和page=page_obj%} {%endblock%}
Pagination.html(模板)


{%如果page.has_previous%}
{%endif%}
第{{Page.paginator.num_pages}页中的第{{Page.number}页。
{%如果page.has_next%}
{%endif%}

在您的视图中,您返回的是上下文
'page':page
但它应该是
'page':paginator
即使按照建议返回了“page:paginator”,我仍然有同样的问题。还有什么我做得不对的吗?谢谢您的帮助。在您的视图中,您返回的是上下文
'page':page
但它是错误的应该是
'page':paginator
即使按照建议返回了“page:paginator”,我仍然有同样的问题。还有什么我做得不对的吗?谢谢你的帮助。
<div class="pagination">
     <span class="step-links">
       {% if page.has_previous %}
        <a href="?page={{ page.previous_page_number }}">Previous</a>
       {% endif %}
       <span class="current">
         Page {{ page.number }} of {{ page.paginator.num_pages}}.
       </span>
         {% if page.has_next %}
            <a href="?page={{ page.next_page_number }}">Next</a>
         {% endif %}
      </span>
</div>