Nei*_*man 2 python django django-models django-pagination
我正在尝试使用django分页模块,包括标准分发版本1.3.
当试图加载当前由分页控制的页面时,如果我在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)
Run Code Online (Sandbox Code Playgroud)
类型错误:
int() argument must be a string or a number, not 'NoneType'
Run Code Online (Sandbox Code Playgroud)
错误从上面代码的第3行显示:
mails = paginator.page(page)
Run Code Online (Sandbox Code Playgroud)
有人在此之前见过这个错误和/或知道如何纠正它吗?
尝试更改此行:
page = request.GET.get('page')
Run Code Online (Sandbox Code Playgroud)
对此:
page = request.GET.get('page', '1')
Run Code Online (Sandbox Code Playgroud)
问题是你得到的参数不存在.使用索引[]会导致a KeyError,但如果该get方法None不存在,则返回该方法.分页器正在调用int(None),但失败了.
get如果密钥不存在而不是,则该方法的第二个参数是默认返回None.我通过了'1'哪个int不应该失败.
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |