python - Django 分页器引发 TypeError

标签 python django django-models django-pagination

我正在尝试使用包含在标准分发版本 1.3 中的 django 分页模块。

当尝试加载当前由分页控制的页面时,如果我不在 uri 中包含 ?page=,它会抛出 TypeError。我以前从未遇到过这种情况,也看不出有任何原因会发生。

这是我目前的观点:

paginator = Paginator(mails_list, 25) # Shows 25 mails per page

page = request.GET.get('page')
try:
    mails = paginator.page(page)
except PageNotAnInteger:
    # If page is not an integer, deliver the first page.
    mails = paginator.page(1)
except EmptyPage:
    # If page is out of range (e.g. 9999), deliver last page of results
    mails = paginator.page(paginator.num_pages)

类型错误:

int() argument must be a string or a number, not 'NoneType'

上述代码的第 3 行出现错误:

mails = paginator.page(page)

之前有人目睹过这个错误和/或知道如何纠正它吗?

最佳答案

尝试改变这一行:

page = request.GET.get('page')

对此:

page = request.GET.get('page', '1')

问题是您获得了一个不存在的参数。使用 [] 进行索引会导致 KeyError,但 get 方法如果不存在则返回 None .分页器正在调用 int(None),但失败了。

get 方法的第二个参数是在键不存在时返回的默认值,而不是 None。我传递了 '1'int 不应失败。

关于python - Django 分页器引发 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089916/

相关文章:

python - 为什么在Django单元测试期间我的表不可用?

python - 如何从 django/sqlalchemy 处理的数据库中批量获取模型对象

python - 如何在 API 响应中隐藏密码?

python - 如何对数据进行分组并绘制折线图

python - Django - 传递给模板时上下文被修改

javascript - 403(禁止)

django - 是否有模拟 Django 模型的标准方法?

python - Django 中的 ModelForms 与 ManyToMany 关系模型

python - 在 Python Django 中导出到 SPSS 文件?

python - 在 Python 中保存从 fbprophet 生成的图