django - 尝试使用模型上传音频文件,但出现“未找到”错误(Django)
问题描述
我有一个“音乐”模型,允许用户通过“FileField”上传音频文件。该文件可以正常上传到我的媒体文件夹,但 profile.html 中的播放器返回“错误”,并且在终端中显示“未找到”,后跟音频文件路径。
我还是 django 的新手,所以如果有人能指出我在这里做错了什么,我将不胜感激。
这是终端中的错误:
未找到:/my-profile/djangoapp1/media/path/to/audio/05_-_Bicycle_Race.mp3 [13/Feb/2021 15:44:44]
“GET /my-profile/djangoapp1/media/path/to/audio/05_-_Bicycle_Race.mp3 HTTP/1.1”404 6743
模型.py
class Music(models.Model):
track = models.FileField(upload_to='path/to/audio')
title = models.TextField(max_length=50)
artwork = models.ImageField(upload_to='path/to/img', blank=True)
artist = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
表格.py
class MusicForm(forms.ModelForm):
class Meta:
model = Music
fields = ['track', 'title', 'artwork']
widgets = {
'title': forms.Textarea(attrs={'rows':1, 'cols':1}),
}
视图.py
@login_required
def music_upload(request):
if request.method == "POST":
form = MusicForm(request.POST, request.FILES)
if form.is_valid():
user = request.user
song = form.save(commit=False)
song.artist = user
song.save()
messages.success(request, f'Track Uploaded')
return redirect('my_profile')
else:
form = MusicForm()
return render(request, 'feed/music_upload.html', {'form':form})
profile.html
<h3>MUSIC</h3>
<audio controls>
<source src="djangoapp1/media/path/to/audio/05_-_Bicycle_Race.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
解决方案
推荐阅读
- java - JAVA-写入文件时出现问题,但程序无法完成
- angular - 访问音频播放器的主题内容 Angular
- jquery - 如何获取数据 ID 值 onchange(文本框)
- mongodb - 尝试从命名空间“MongoDB\Driver\Monitoring”加载接口“CommandSubscriber”
- c# - 如何在 C# 中将每个新连接的对象添加到每个对象的列表中?
- r - 如何使用 R 代码从 4 个文件夹中创建一个大型 .csv 文件,每个文件夹包含 100 个文件?
- linq - EF Core 3.1 中的 Group By 和 To 字典
- javascript - javascript: 命名的 Firebase 应用程序已存在 (app/duplicate-app)
- node.js - 使用 Node 和 Axios 处理网络超时
- c++ - 如何使用 C++ 编译器在 VS 代码中使用 IntelliSense 的包含路径