我从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
我想知道我该怎么做?
非常感谢您
答案 0 :(得分:1)
我认为您最好反向查询,例如:
max_country = Country.objects.filter(
download__pub__publication__id=pubsd.id
).annotate(
ndown=Count('download')
).order_by('-ndown').first()
(在download
与related_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')