django如何访问已上传的视频

时间:2011-12-13 21:21:49

标签: python django

我已经向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>

它显示了一个空的视频播放器。

我做错了什么?

请帮助

2 个答案:

答案 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