Задание параметра upload_to в модели, похоже, ничего не делает - PullRequest
0 голосов
/ 26 мая 2019

Моя модель выглядит следующим образом:

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/, на мой взгляд?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...