How to aggregate annotate fields of related models in django

My problem is a little more complicated, but I'm posting the question in the simplest possible way.

  1. Annotated total_score in Photo.
  2. I would like to annotate max_total_score in Person.

I wrote get_queryset of PersonManager, but the following error occurred.

Is there a new way?

from django.db import models

class PersonManager(models.Manager):
    def get_queryset(self):
        photos_prefetch = models.Prefetch(
        return super().get_queryset() \
                      .prefetch_related(photos_prefetch) \

class Person(models.Model):
    objects = PersonManager()

class Photo(models.Model):
    person = models.ForeignKey(Person, models.CASCADE, related_name='photos')

class Feature(models.Model):
    photo = models.ForeignKey(Photo, models.CASCADE, related_name='features')
    name = models.CharField(max_length=100)
    score = models.IntegerField()


>> Person.objects.all()
# Unsupported lookup 'total_score' for BigAutoField or join on the field not permitted
Back to Top