Django: Подсчет количества раз, когда объект появляется в Foreign Key с фильтром

Мои модели выглядят следующим образом:

class TeamMember(models.Model):
    name = models.CharField(max_length=500)
    

class Opportunity(models.Model):
     name = models.CharField(max_length=500)
     date_created = models.DateTimeField(
        auto_now=True)
     team_lead = models.ForeignKey('TeamMember', blank = False, related_name = 'lead_opps')

Мне нужно создать список имен членов команды с количеством возможностей, в которых они принимали участие, упорядоченный по количеству. Это легко сделать с помощью приведенного ниже метода, однако мне также необходимо ограничить возможности по диапазону дат.

Итак, если кратко, мне нужно создать список членов команды с количеством возможностей, которые они возглавили в определенном временном диапазоне. Как добавить фильтр к подсчитываемым возможностям в аннотации?

Вот что у меня есть на данный момент:

TeamMember.objects.annotate(num_opps = Count('lead_opps')).order_by('-num_opps')[0].num_opps

Пожалуйста, RTFM.

Вы ищете этот фрагмент документации:

... .annotate(...) \
    .filter(date_created__gt=start) \
    .filter(date_created__lt=end) \
    .order_by ...
Вернуться на верх