Django:在我的模板中获得最高的queryset属性

时间:2018-10-04 07:34:03

标签: django django-queryset

我从Django开始,我想知道如何从Django查询集中获取属性。

我有这个查询集:

get_country = Download.objects.filter(pub__publication__id=pubsd.id).values('country__name').order_by('country__name').annotate(count_country=Count('country__name'))

它返回:

<QuerySet [{'country__name': 'France', 'count_country': 1}, {'country__name': 'Germany', 'count_country': 2}]>

所以我想在模板中显示最高count_country

的国家/地区名称

我想知道我该怎么做?

非常感谢您

2 个答案:

答案 0 :(得分:1)

我认为您最好反向查询,例如:

max_country = Country.objects.filter(
    download__pub__publication__id=pubsd.id
).annotate(
    ndown=Count('download')
).order_by('-ndown').first()

(在downloadrelated_name关系的Country中是Download

这将为您提供Country对象,它们具有最相关的Download,然后您可以对Country对象进行处理或渲染,就像对任何{{1 }}对象。

例如,如果您将对象传递到模板,则可以将其呈现为:

Country

答案 1 :(得分:1)

可见

return render(request,'template.html','{'country':'get_country'}

在模板中

{% for key, values in country.items %}
    <tr>
        <td>{{key}}</td>
        <td>{{values }}</td>
    </tr>
    {% endfor %}


get_country = Download.objects.filter(pub__publication__id=pubsd.id).values('country__name').order_by('country__name').annotate(count_country=Count('country__name')).order_by('-count_country')