如何解决分页器功能在 Django 中不起作用?
我的问题是我想每页只检索 6 个对象,但每页显示 10 个对象
我的看法
def home(request):
if request.method == 'GET':
entry = Entry.objects.all().order_by('date_added')
# top_rated = Entry.objects.annotate(
# no_of_likes=Count('likes')).order_by('-no_of_likes')[:2]
pages = Paginator(entry,6)
if request.GET.get('page'):
print('executed')
page_num = request.GET.get('page')
pages = pages.page(page_num)
entries = pages.object_list
print(len(entries))
return render(request,'base/base.html',{'entries': entries,'pages': pages})
解决方法
您以冗余/不完整(未处理)检查和将不同对象分配给同一变量的方式编写了代码,从而导致了您看到的问题。基本上发生的事情是您的条件 if request.GET.get('page'):
评估为 False
可能是因为 page
不存在于查询字符串中。这意味着 entries = pages.object_list
为您提供了完整的查询集。
改为尝试以下操作:
def home(request):
entry = Entry.objects.all().order_by('date_added')
pages = Paginator(entry,6)
page_number = request.GET.get('page')
page = paginator.get_page(page_number)
entries = page.object_list
return render(request,'base/base.html',{'entries': entries,'page': page})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。