title: additional conditions on join in django
body: <p>Is it possible to add an additional condition to join statement created by django ORM?</p>
  
  <p>What I need in SQL is</p>
  
  <pre><code>'SELECT "post"."id", COUNT("watchlist"."id") FROM "post" 
   LEFT OUTER JOIN "watchlist" 
      ON ("post"."id" = "watchlist"."post_id" AND "watchlist"."user_id" = 1) 
   WHERE "post"."id" = 123  GROUP BY …
  </code></pre>
  
  <p>In django most of this is</p>
  
  <pre><code>Post.objects.annotate(Count('watchinglist')).get(pk=123)
  </code></pre>
  
  <p>But how can I add <code>AND "watchlist"."user_id" = …</code> into JOIN condition with django ORM?</p>
  
  <p>Adding it to filter fails to get Post objects with no associated objects in watchlist.</p>