我已经向django上传了一个视频,而且一切正常...... 但我需要在视图中呈现该视频.. django无法访问它 任何想法如何使django模板看到我上传的文件
modles.py:
class VideoData(models.Model):
title = models.CharField(max_length=200)
file = models.FileField(upload_to='vids' )
forms.py:
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
并在template.html中:
<video width="320" height="240" controls="controls">
<source src="vids/name.mov" type="video/mov" />
</video>
它显示了一个空的视频播放器。
我做错了什么?请帮助
答案 0 :(得分:1)
您的视频已上传media_root / vid目录(只需在文件系统上进行检查即可确认)。 因此,当您从模板中调用它时,您应该在视频图像前面编写媒体模板。 (所以你的网址可能是/media/vids/name.mov) 我还注意到你正在编写硬编码的视频名称,而是使用类似的内容
<video width="320" height="240" controls="controls">
<source src="{{MEDIA_URL}}{{my_video_data.file}}" type="video/mov" />
</video>
为了在这里使用MEDIA_URL,你必须通过上下文处理器checkout django.shortcuts.render方法运行你的上下文变量。
答案 1 :(得分:1)
假设名为VideoData
的{{1}}实例位于模板的上下文中,您应该使用:
vid
要将<video width="320" height="240" controls="controls">
<source src="{{vid.file.url}}" type="video/mov" />
</video>
实例添加到模板的上下文中,您的视图应如下所示:
VideoData