У меня есть Django API фермы.
class Group(models.Model):
name = models.CharField()
milking = models.BooleanField()
sub_groups = models.ForeignKey('self',
on_delete=models.DO_NOTHING)
herd = models.ForeignKey(on_delete=models.CASCADE,
to=Herd)
def __str__(self):
return self.name
class Cow(models.Model):
management_id = models.CharField()
eid_number = models.CharField(primary_key=True,
blank=False)
group = models.ForeignKey(Group,
on_delete=models.PROTECT)
days_in_pasture = models.IntegerField()
hours_in_pasture = models.IntegerField()
def __str__(self):
return self.eid_number
Я хочу, чтобы набор запросов в представлении возвращал данные всех групп и каждой группы коров и аннотировал количество дней на пастбище для для каждой группы (укажите сумму дней, проведенных группой коров на пастбище).
Пока что у меня что-то вроде этого:
class GroupView(ModelViewSet):
filter_backends = GROUP_FILTERS
def get_queryset(self):
query_set = Group.objects.all().prefetch_related('cow').annotate(amount_of_cows=Count('cow__days_in_pasture'))
return query_set