Django - SubQuery e функция F()

У меня есть 2 модели (автор и книга). Я хочу аннотировать в модели автора самую высокую цену книги для каждого автора (чтобы впоследствии манипулировать ею). Я хочу сделать запрос с внутренним подзапросом, используя функцию F(), но проблема в том, что F() ссылается на модель книги, а я бы хотел, чтобы она ссылалась на модель автора. Я покажу это на примере. Модели показаны ниже:

class author:
    authorID = models.AutoField(primary_key = True, auto_created = True, unique = True)
    name = models.CharField(max_length=100)
    surname = models.CharField(max_length=100)

class book:
    ownerID = models.ForeignKey(author, on_delete = models.CASCADE, related_name='hook')
    title = models.CharField(max_length=100)
    price = models.IntegerField()

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

value = author.objects.annotate(maxPrice = (book.objects.filter(ownerID = F('authorID')).order_by('-price') [0]))

F('authorID') ссылается на БД книги, поэтому Django возвращает ошибку, но я хочу ссылаться на БД автора, чтобы достичь своей цели. Как я могу это сделать? Спасибо

Вернуться на верх