Django:如何组合列表和查询集,对它们进行分页,并在模板中迭代它们?
我要完成我的领导班子。我目前返回给定类别的前100名领导者。我需要将当前排名附加到结果 起初,我在模板中尝试了forloop.counter变量,但由于结果一次分页10个结果,因此每个新页面都会重置计数器Django:如何组合列表和查询集,对它们进行分页,并在模板中迭代它们?,django,list,templates,pagination,django-queryset,Django,List,Templates,Pagination,Django Queryset,我要完成我的领导班子。我目前返回给定类别的前100名领导者。我需要将当前排名附加到结果 起初,我在模板中尝试了forloop.counter变量,但由于结果一次分页10个结果,因此每个新页面都会重置计数器 def leaderboard(request): stats = Leaderboard.objects.all().order_by('-most_hits')[:100] rank = list(range(1, 101)) pag
def leaderboard(request):
stats = Leaderboard.objects.all().order_by('-most_hits')[:100]
rank = list(range(1, 101))
paginator = Paginator(stats, 10)
page = request.GET.get('page')
results = paginator.get_page(page)
context = {'results': results, 'rank': rank}
目前在第2、3页上返回了错误的排名等答案并不是那么难:我只是使用zip将列表和查询集结合起来。对于分页,我只是用新的变量名对我用于queryset的秩重复了相同的分页步骤。最后,我遍历了模板中的压缩变量:
def leaderboard(request):
stats = Leaderboard.objects.all().order_by('-most_hits')[:100]
rank = list(range(1, 101))
paginator = Paginator(stats, 10)
page = request.GET.get('page')
stats = paginator.get_page(page)
paginator2 = Paginator(rank, 10)
page2 = request.GET.get('page')
rank = paginator2.get_page(page2)
rank_and_query = zip(rank, stats)
context = {'rank_and_query': rank_and_query}
{%表示排名,排名和查询中的统计数据%}
{{rank}}:{{stats.leader}
{%endfor%}
{% for rank,stats in rank_and_query %}
<li>{{ rank }} : {{ stats.leader }}</li>
{% endfor %}