Python 分页已在Django应用程序上停止工作
我是Django的新手,刚读了一本书《Django 2示例》。我遵循了教程中的所有代码,但是有什么东西破坏了这行的分页,我就是不知道它是什么。在我的博客底部,我得到了一个“第1页,共1页”的输出。而不是“第1页,共1页”。在下面找到我的一些代码:。注意:请忽略代码中的缩进。谢谢 视图.pyPython 分页已在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
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.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>