【问题标题】:Pagination on DjangO - No ValuesDjangO 上的分页 - 没有值
【发布时间】:2020-11-12 19:36:47
【问题描述】:

我正在遵循特定指南,基本上遇到了我无法调试的障碍。

我在我的博客站点中实现了 Paginator,并希望显示当前页面/页面末尾。 但由于某种原因,页面值是空白的。 你认为这个问题背后的原因是什么?您认为这与我的 VS 编译器没有正确导入分页器有关吗?

list 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>

views.py

from django.shortcuts import render, get_object_or_404
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import Post

# Create your views here.
def post_list(request):
    object_list = Post.published.all()
    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})

def post_detail(request, year, month, day, post):
    post = get_object_or_404(Post, slug=post,
                                   status='published',
                                   publish__year=year,
                                   publish__month=month,
                                   publish__day=day)
    return render(request,
                  'blog/post/detail.html',
                  {'post': post})

列出 HTML 代码

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

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

{% block content %}
    <h1>My Blog</h1>
    {% for post in posts %}
        <h2>
            <a href="{{ post.get_absolute_url }}">
                {{ post.title }}
            </a>
        </h2>

        <p class="date">
            Published {{ post.publish }} by {{ post.author }}
        </p>
        {{ post.body|truncatewords:30|linebreaks }}
    {% endfor %}
    {% include "pagination.html" with page=post %}
    
{% endblock %}

Github Link

【问题讨论】:

    标签: python django-3.0 paginator


    【解决方案1】:

    尝试使用page=posts 而不是page=post

    {% include "pagination.html" with page=posts %}
    

    【讨论】:

    • 不要,这发生在我们所有人身上:)
    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2019-09-29
    • 2019-12-29
    • 2016-09-14
    • 2020-11-30
    相关资源
    最近更新 更多