Код прекрасно работает без подзапроса, зачем его использовать?
newest = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')
posts = Post.objects.annotate(newest_commenter_email=Subquery(newest.values('email')[:1]))
И,
newest = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')
posts = Post.objects.annotate(newest_commenter_email=newest.values('email')[:1])
Оба, работают отлично, тогда зачем использовать Subquery
, в чем его преимущества?
Подзапросы могут облегчить написание сложных запросов, поскольку вы можете разбить запрос на более мелкие, более управляемые части. Как использовать подзапрос
В вашем случае запрос был не таким уж сложным.