在Django项目模板中生成音频文件

杰克·穆赫恩(Jake Mulhern)

我正在尝试使用Django创建一个非常简单的网站,该网站中将存储许多音频文件,并可供流式传输和下载。我知道还有其他方法可以做到这一点,例如使用AWS,但是我想首先弄清楚这种方法。我将在此处包括我的模板,但要注意,由于我一直在尝试使用不同的结构来解决此问题,因此该模板目前比较混乱。

{% for song in concert.song_set.all %}
    <li>{{ song.song_title }}</li>
    <li>{{ song.song_location }}</li>
    <!-- Working -->
    <audio 
      class = "audioPlayer uniqueShowAP"
      controls <--controlsList="nodownload"
        src="{% static 'shows/audio/redRocks2019/01 Yi.mp3' %}">
        Your browser does not support the
        <code>audio</code> element.
    </audio>
    <!-- Not Working...yet -->
    <audio 
        class = "audioPlayer uniqueShowAP"
        controls <--controlsList="nodownload"
        src="/shows/static/shows/{{ song.song_location }}">
        Your browser does not support the
        <code>audio</code> element.
    </audio>

{% endfor %}

我想发生的事情是,我保存的每场音乐会都会浏览该音乐会下保存的歌曲,并将它们添加到歌曲名称下。我将每首歌的相对位置保存在数据库中,这样我就可以调用它的位置了。

我已经通过调用{{song.song_location}}进行了测试,它可以正确显示每首歌曲的位置。

我还尝试使用src =“ {%static'shows / audio / redRocks2019 / 01 Yi.mp3'%}”只是为了确保该元素至少已正确设置并且也可以正常使用。

如何在元素中格式化src =“”以将其指向正确的音频文件?我可以包括自己的观点和模型,或者可能需要其他任何信息来帮助我弄清楚这一点。我已经有一段时间了,只需要有人指出我正确的方向即可。

锻造的

我认为您应该考虑使用FileField您可以Song使用带有song_file = FileField(upload_to='song_files/')字段模型然后,在遍历模型实例时可以更轻松地保存和访问文件:

<audio src='{{ song.song_file.url }}' controls></audio>

这些文件将根据您的媒体设置存储在本地。如前所述,您可以轻松地过渡到对媒体文件使用存储解决方案,例如S3。它在Django上的运行非常顺畅,所以不要害怕。

静态文件应该用于诸如css,js和图像之类不会改变的东西,例如收藏夹图标。我猜想它可以用于静态歌曲。但是,我认为,以上述方式将静态文件与模型实例结合使用时,我会感到有些困惑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章