title: Django ORM Left Join onto same table
body: <p>I have a custom permissions system in a django project that can link any user to any specific model instance to grant permission on that object.  It is more complex than this, but boiled down:</p>
  <pre><code>class Permission(models.Model):
      user = models.ForeignKey(User)
      content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
      object_id = models.PositiveIntegerField()
      content_object = GenericForeignKey('content_type', 'object_id')
  </code></pre>
  <p>I want to query for all permissions for any user, that are linked to the same content_object(s) that a particular user has been granted permission(s) on.  Phrased differently, the user in question wants to see who else has permissions on any of the same objects that they do.</p>
  <p>In SQL, the following does the trick:</p>
  <pre><code>SELECT 
      perm1.* 
  FROM app_permission perm1 
  LEFT JOIN app_permission perm2 
      ON perm2.user_id = 12345
      AND perm1.content_type_id = perm2.content_type_id 
      AND perm1.object_id = perm2.object_id 
  WHERE perm2.id IS NOT NULL;
  </code></pre>
  <p>Is it possible to achieve this in the django ORM?</p>