【问题标题】:page() missing 1 required positional argument: 'number' in djangopage() 缺少 1 个必需的位置参数:django 中的“数字”
【发布时间】:2020-11-17 06:15:07
【问题描述】:

所以,我正在尝试将分页添加到我的 django 网站。这是我处理分页的视图函数的代码:

def index(request):
    object_list = Post.published.all()
    latest_post = object_list.last()
    paginator = Paginator(object_list, 3)
    page = request.GET.get('page')
    try:
        posts = Paginator.page(page)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)

    return render(request, 'blog/index.html',{
        'posts':posts,
        'latest_post':latest_post,
        'page':page,
        })

我在 try 块内的第 11 行遇到错误。哪里出错了?

【问题讨论】:

  • int(page)...试试这个

标签: django pagination


【解决方案1】:

request.GET.get('page') 返回None,因此它在下一行失败,因为需要页码。最好这样使用Pagination

paginator = Paginator(object_list, 3)
page = request.GET.get('page')
posts = paginator.get_page(page)

get_page() 方法处理这种情况,如果它是None,它将返回第 1 页。 Here 是源代码中发生这种情况的行。

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2017-10-20
    • 1970-01-01
    • 2018-01-24
    • 2019-05-27
    • 2015-07-08
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多