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 возвращает ошибку, но я хочу ссылаться на БД автора, чтобы достичь своей цели. Как я могу это сделать? Спасибо