title: How to include related columns in Django without including all columns
body: <p>Django's ORM has a method called <a href="https://docs.djangoproject.com/en/1.10/ref/models/querysets/#select-related" rel="nofollow noreferrer"><code>select_related()</code></a> for joining related tables.</p>
  
  <p>However, if the field included is a foreign key to another model, the default behavior seems to be to include all columns in the related model.</p>
  
  <p>For example, if I have the models:</p>
  
  <pre><code>class A(models.Model):
      field1 = models.CharField(...)
      field2 = models.CharField(...)
  
  class B(models.Model):
      field1 = models.CharField(...)
      field2 = models.ForeignKey(A)
  
  print str(B.objects.all().select_related('field2').query))
  </code></pre>
  
  <p>outputs:</p>
  
  <pre><code>SELECT myapp_b.id, myapp_b.field1, myapp_b.field2_id, myapp_a.id, myapp_a.field1, myapp_a.field2 FROM ...
  </code></pre>
  
  <p>but I only want to include <code>A.field1</code>, not all fields from <code>A</code>, so I tried doing:</p>
  
  <pre><code>print str(B.objects.all().select_related('b__field1').query))
  </code></pre>
  
  <p>but that outputs the exact same query.</p>
  
  <p>How do I stop Django from including all fields from a foreign-key field listed in <code>select_related()</code>?</p>