Моя модель выглядит следующим образом:
class MainSample(models.Model):
audio = models.FileField(upload_to='audio')
В следующем представлении я создаю экземпляр этой модели и сохраняю его:
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)
И затем создаю звуковой элемент вtemplate:
<!DOCTYPE HTML>
<html>
<body>
<audio controls src="{{main_sample.audio.url}}"</div>
</body>
</html>
Аудиофайл предварительно загружен и находится в MEDIA_ROOT/audio/
.
Код работает, но я не понимаю назначение параметра upload_to
вопределение модели даже после прочтения об этом в Django docs.
Предполагается добавить audio
путь к моему MEDIA_ROOT
, но в представлении мне все еще нужно добавить значение main_sample.audio
с помощью audio/
, иначе шаблон не загрузит аудиофайл..
Может ли кто-нибудь объяснить простыми словами, что делает upload_to
в этом контексте, и если я смогу избавиться от повторной записи audio/
, на мой взгляд?