title: django select_related() calls database each time object is referenced, instead of just once
body: <p>using <code>select_related</code>, each time I reference the query set, another call to the database is made. instead of caching the result.</p>
  
  <p><strong>models.py</strong>
      ....</p>
  
  <pre><code>class Album(models.Model):
      user = models.ForeignKey(
          settings.AUTH_USER_MODEL,
          on_delete=models.CASCADE,
      )
      title = models.CharField(max_length=255)
      description = models.CharField(max_length=255, null=True)
  
  class Photo(models.Model):
      album = models.ForeignKey(Album, on_delete=models.CASCADE)
      name = models.TextField(unique=True)
  ...
  </code></pre>
  
  <p><strong>views.py</strong></p>
  
  <pre><code>....
  photos = Photo.objects.select_related('album').filter(album_id = id).all()
  chosen_album = photos[0]
  print(photos)
  
  ....
  </code></pre>
  
  <p>will result in 2 different calls to the database for each reference to "photos", as verified by <code>manage.py runserver_plus --print-sql</code></p>
  
  <p>is this normal? or am I not using <code>select_related()</code> properly?</p>
  
  <p><strong>EDIT:</strong> </p>
  
  <p>this statement in my template is what's causing the additional DB calls that I'm trying to prevent <code>{% for photo in photos%}</code></p>
  
  <pre><code>...
  {% for photo in photos%}
      &lt;div class="swiper-slide"&gt;
          &lt;div class="img-wrapper" id="{{ photo.id }}"&gt;
  ...
  </code></pre>
  
  <p><strong>EDIT 2</strong>
  Sorry I should have included this in my view.... This is the other line getting a DB call.</p>
  
  <pre><code>chosen_album = photos[0]
  </code></pre>
  
  <p>Since I need to get the album info...</p>