Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:如何组合列表和查询集,对它们进行分页,并在模板中迭代它们?_Django_List_Templates_Pagination_Django Queryset - Fatal编程技术网

Django:如何组合列表和查询集,对它们进行分页,并在模板中迭代它们?

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

我要完成我的领导班子。我目前返回给定类别的前100名领导者。我需要将当前排名附加到结果

起初,我在模板中尝试了forloop.counter变量,但由于结果一次分页10个结果,因此每个新页面都会重置计数器

    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 %}