Django - Как сделать аннотацию с подсчетом связанных элементов модели

У меня есть эти модели:

class Gym(models.Model):
  name = models.CharField()

class Employee(models.Model):
  name = models.CharField()
  gym = models.ForeignKey(Gym)

class Appointment(models.Model):
  time = models.DateTimeField()
  gym = models.ForeignKey(Gym)

class AppointmentItem:
  name = models.CharField()
  employee = models.ForeignKey(Employee)
  appointment = models.ForeignKey(Appointment)

Я хочу получить список сотрудников салона по количеству назначенных встреч. Как я могу это сделать?

@Chalist мало думает:

Первый:

class AppointmentItem:

не объявлен как модель, не уверен, была ли это опечатка в вопросе, но в любом случае имена полей неверны. appointment_item должно быть appointmentitem, а фильтр должен быть appointmentitem__appointment__time__gte, поскольку вы ищете время appointment для этого appointmentitem.

Employee.objects
   .filter(gym_id=1,appointmentitem__appointment__time__gte='2020-07-01')
   .annotate(item_count=Count('appointmentitems'))
Вернуться на верх