Подсчет объектов в шаблоне Django - PullRequest
2 голосов
/ 11 марта 2011

Я новичок в Джанго.Я хотел бы посчитать и отобразить количество объектов, которые удовлетворяют условию в шаблоне.

У меня есть модель User и модель Account.У пользователей есть учетная запись поля Foreignkey, которая сопоставляется с объектом Account.

В шаблоне я хочу подсчитать количество пользователей для каждой учетной записи.

Ближайшее, что у меня есть, этоэто:

{% for account in accounts %}

    {% for user in users %}

        {% if equal user.account.id account.id %}

            {{ user.count }}

        {% endif %}

    {% endfor %}

{% endfor %}

Спасибо

Ответы [ 2 ]

4 голосов
/ 11 марта 2011

Вы можете комментировать свои учетные записи с количеством пользователей в представлении. Предполагая, что пользовательская модель содержит account = ForeignKey(Account, related_name='users'):

accounts = Account.objects.annotate(user_count=models.Count('users'))

Таким образом, вам потребуется только один запрос. Затем просто используйте следующее в вашем шаблоне:

{% for account in accounts %}
    {{ account.user_count }}
{% endfor %}
4 голосов
/ 11 марта 2011

Из вашего шаблона кажется, что пользовательское поле определено примерно так:

class User(models.Model):
    .
    .
    account=models.Foreignkey()
    .

если это что-то вроде этого, вы можете следовать this .

{% for account in accounts %}
    Count: {{ account.user_set.count }}
    {% for user in account.user_set.all %}
        {{ user }}
    {% endfor %}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...