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 ...