python - 分页停止在 Django 应用程序上工作
问题描述
我是 Django 的新手,我刚刚拿起一本书“Django 2 by example”。我遵循了教程中的所有代码,但是有些东西打破了分页,我只是不知道它是什么。我得到“Page of .”的输出。而不是“第 1 页,共 1 页。在我的博客的底部。在下面找到我的一些代码:。PS:请忽略代码中的缩进。谢谢。
视图.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})
列表.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 %}
Pagination.html(模板)
<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>
解决方案
推荐阅读
- javascript - 如何在更改时记录下拉列表的每个值
- html - 如何使用 jquery 访问子元素?
- python - Pyserial in_waiting CPU 使用率
- c# - WPF 如何将主题应用于使用 MVVM 动态创建的对象
- javascript - 使用fetch api将html模板从一个更改为另一个时如何保持模式打开
- ffmpeg - FFmpeg Centos 编译错误 - 由 libwebp 引起(错误:函数“libwebp_error_to_averror”的隐式声明)
- powerbi - 将汇总总系列添加到 Power BI 图表
- python - 减法变成乘法
- java - Ubuntu:无法启动 Eclipse
- javascript - 如何配置 cors-anywhere 速率限制和白名单?