Сложный шаблон обратного запроса Django Template - PullRequest
0 голосов
/ 09 октября 2018

У меня есть эта модель, где руководитель - это внешний ключ для команды, который является внешним ключом для отдельного сотрудника.

model.py

class Supervisor(models.Model):
    [fields..]

class Team(models.Model):
    shift = ...
    department = ...
    supervisor = models.ForeignKey(Supervisor, related_name="team_supervisor")

class Employee(models.Model):
    [fields...]
    team = models.ForeignKey(Team, related_name="employee_team")

При использовании руководителямодели в представлении, и, просматривая каждого супервизора, я могу перечислить, сколько команд супервизор управляет с помощью инструкции:

{{ supervisor.team_supervisor.count }}

Как я могу показать общее количество отдельных сотрудников, которые работают на руководителя в каждомкоманда, которая есть у руководителя?Я предполагал, что следующее будет работать, но это не так:

{{ supervisor.team_supervisor.employee_team.count }}

1 Ответ

0 голосов
/ 09 октября 2018

Вам потребуется изменить набор запросов и аннотировать его, используя Count из модуля django.db.models.aggregates ( документы и примеры здесь ).Вот так:

from django.db.models import Count
supervisors = Supervisor.objects.annotate(employee_count=Count('team__employee'))
...