Подсчет объектов в шаблоне Django

Вопрос:Я новичок в Django. Я хотел бы подсчитать и отобразить количество объектов, удовлетворяющих условию в шаблоне. У меня есть модель пользователя и модель аккаунта. У пользователей есть учетная запись поля foreignkey, которая сопоставляется с объектом Account. В шаблоне я хотел бы подсчитать количество пользователей для каждой учетной записи. Самое близкое, что у меня есть, это:

Вопрос:

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

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

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

Самое близкое, что у меня есть, это:

{% for account in accounts %} {% for user in users %} {% if equal user.account.id account.id %} {{ user.count }} {% endif %} {% endfor %} {% endfor %}

Спасибо

Лучший ответ:

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

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 %} Ответ №1

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

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

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

{% for account in accounts %} {{ account.user_count }} {% endfor %}

Оцените статью
Добавить комментарий