Django: получить самый высокий атрибут queryset в моем шаблоне - PullRequest
0 голосов
/ 04 октября 2018

Я начинаю с 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 голосов
/ 04 октября 2018

в поле зрения

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')
0 голосов
/ 04 октября 2018

Я думаю, вам лучше запросить это в обратном порядке, например:

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 s, вы можете затем выполнить обработку или рендеринг объекта Country, как вы можете сделать с любым объектом Country.

Если вы, например, передаете объект в шаблон, вы можете отобразить его следующим образом:

Most downloads are from {{ max_country.name }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...