Django模板:在不同的列表上组合2个循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模板:在不同的列表上组合2个循环相关的知识,希望对你有一定的参考价值。

我想知道如何在我的模板中组合这两个查询集以循环它们。

requests = Download.objects.values('pub__age_id').annotate(count=Count('pub__age_id'))

max_download_number = Download.objects.values('pub__age_id').annotate(max_usage=Max('usage'))

context = {'requests': requests, 'max_download_number': max_download_number}

在我的模板中:

{% for item in requests %}
    {% for element in max_download_number %}
        <tr>
            <td>{{ item.pub__age_id }}</td>
            <td><span class="badge alert-info">{{ item.count }}</span></td>
             <td>{{ element.max_usage }}</td>
             <td>Something</td>
        </tr>
    {% endfor %}
{% endfor %}

它显示错误的循环:

enter image description here

答案

为什么不在视图中组合它:

requests = Download.objects.values('pub__age_id').annotate(count=Count('pub__age_id')).annotate(max_usage=Max('usage'))

然后在模板中:

<td>{{ item.pub__age_id }}</td>
<td><span class="badge alert-info">{{ item.count }}</span></td>
<td>{{ item.max_usage }}</td>

以上是关于Django模板:在不同的列表上组合2个循环的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历 Django 模板中的对象列表

如何在 Django 模板中嵌套或联合使用两个模板标签?

Django模板中的备用行着色具有多个行集

用于循环的 django 模板语言

django 模板中的 for 循环 - 列表对象没有属性“get”

Django / i18n:如何在模板中转换方法结果?