title: Specifying upload_to parameter in the model does not seem to do anything
body: <p>My model looks like this:</p>
  
  <pre><code>class MainSample(models.Model):
      audio = models.FileField(upload_to='audio')
  </code></pre>
  
  <p>In the following view, I am creating this model's instance and saving it:</p>
  
  <pre><code>from .models import MainSample
  
  def index(request):
      MainSample.objects.all().delete()
      main_sample = MainSample()
      main_sample.audio = 'audio/main_sample.mp4' # why do I need to prepend this with 'audio'?
      main_sample.save()
      context = {
          'main_sample': main_sample,
      }
      return render(request, 'mediaapp/index.html', context)
  </code></pre>
  
  <p>And next creating an audio element in the template:</p>
  
  <pre><code>&lt;!DOCTYPE HTML&gt;
      &lt;html&gt;
          &lt;body&gt;
              &lt;audio controls src="{{main_sample.audio.url}}"&lt;/div&gt;
          &lt;/body&gt;
      &lt;/html&gt;
  </code></pre>
  
  <p>The audio file is pre-downloaded and sits in <code>MEDIA_ROOT/audio/</code>.</p>
  
  <p>The code works, but I don't understand the purpose of <code>upload_to</code> parameter in the model definition, even after reading about it in the Django docs. </p>
  
  <p>It is supposed to append <code>audio</code> path to my <code>MEDIA_ROOT</code>, yet in the view I still need to prepend the value of <code>main_sample.audio</code> with <code>audio/</code>, otherwise the template will not load the audio file.</p>
  
  <p>Could someone explain in plain words what does the <code>upload_to</code> does in this context, and if I can possibly get rid of writing <code>audio/</code> again in my view?</p>