我正在尝试使用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/')
字段。然后,在模型实例中循环时,可以更轻松地保存和访问文件:这些文件将根据您的媒体设置存储在本地。正如您所提到的,您可以轻松地过渡到使用S3等存储解决方案来存储媒体文件。它与Django一起工作非常顺利,所以不要害怕
静态文件应该用于css、js和图像等不会改变的东西,比如favicon。我猜它可以被用于一首静态歌曲,假设。但我认为,以这种方式将静态文件与模型实例结合使用有点做作和混乱
相关问题 更多 >
编程相关推荐