Django使用Paginator分页时报错object of type 'method' has no len()如何解决
报错原因
错误核心是你传入Paginator的数据源类型错误:
- 你的代码中写的是
wallpapers = Wallpaper.objects.all,没有给all添加括号执行调用,此时wallpapers变量存储的是all方法本身的引用,而非调用后返回的壁纸数据查询集 Paginator初始化时会调用len()计算数据源的总长度,方法类型对象不支持长度计算,因此触发了该TypeError。
修复方法
只需要修改views.py中获取壁纸数据的那一行代码,给all方法添加执行括号即可:
# 修改前 wallpapers = Wallpaper.objects.all # 修改后 wallpapers = Wallpaper.objects.all()
修改后无需调整其他代码,重启服务即可正常使用分页功能。
内容的提问来源于stack exchange,提问作者Mario_z04
相关产品推荐
相关产品推荐

