title: How to annotate Django QuerySet with other object using Subquery
body: <p>In Django version 1.11, <a href="https://docs.djangoproject.com/en/1.11/ref/models/expressions/#subquery-expressions" rel="noreferrer">Subquery expressions</a> were added. I was hoping to use this feature to select a related model object based on some filters.</p>
  
  <p>This is an example from the <a href="https://docs.djangoproject.com/en/1.11/ref/models/expressions/#subquery-expressions" rel="noreferrer">documentation</a>:</p>
  
  <pre><code>from django.db.models import OuterRef, Subquery
  newest = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')   
  Post.objects.annotate(newest_commenter_email=Subquery(newest.values('email')[:1]))
  </code></pre>
  
  <p>I would like to do the same, but instead of just annotating with the "<code>newest_commenter_email</code>" in this scenario, I'd like the whole <code>Comment</code> object saved to a <code>newest_comment</code> annotation, like so:</p>
  
  <pre><code>from django.db.models import OuterRef, Subquery
  newest = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')   
  Post.objects.annotate(newest_comment=Subquery(newest[:1]))
  </code></pre>
  
  <p>However, this results in the following error:</p>
  
  <pre><code>FieldError: Expression contains mixed types. You must set output_field
  </code></pre>
  
  <p>Is there a way around this?</p>