【问题标题】:Video File in Django Site how to watch filmsDjango站点中的视频文件如何观看电影
【发布时间】:2020-02-04 09:05:07
【问题描述】:

大家好,大家都在尝试在我的项目中添加在“FIlmy”应用程序中观看电影的功能。而且我不知道我做错了什么,但它只显示一个没有加载的黑色窗口。

我的模型:

          class Video(models.Model):
               name = models.ForeignKey(Movie, on_delete=models.CASCADE)
               file = models.FileField(upload_to='films_image/', null=True, verbose_name="")

我的看法:

           @login_required
           def showvideo(request):
               firstvideo = Video.objects.last()
               videofile = firstvideo.videofile

               return render(request, "MyPage/MovieDetail.html", {'videofile': videofile})

我的模板:

           <h3><b>Clip</b></h3>


            <br>
            <video width='400' controls>
                   <source src='{{ videofile }}' type='video/mp4'>
                    Your browser does not support the video tag.
            </video>

我可能有源错误,我不知道我做错了什么

我已添加到我的网址

                ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

还有我的设置:

                 MEDIA_URL = os.path.join(BASE_DIR, 'media/')

                 MEDIA_ROOT = '/media/'

我向我的电影外键添加了一个文件,现在我希望在我的模板中查看电影标题

【问题讨论】:

    标签: python django filefield


    【解决方案1】:

    尝试将您的来源更改为

    &lt;source src='{{ videofile.url }}' type='video/mp4'&gt;

    也改变你的views.py喜欢

    @login_required
    def showvideo(request):
        firstvideo = Video.objects.last()
        videofile = firstvideo.file  # <-- As your model FileField name is 'file' and not videofile.
    
        return render(request, "MyPage/MovieDetail.html", {'videofile': videofile})
    

    【讨论】:

    • 我添加了一张照片
    【解决方案2】:

    Django 的FileField 具有url 属性,您可以在模板中使用它来获取文件的url:

    <source src='{{ videofile.url }}' type='video/mp4'>
    

    您还应该将设置更改为:

    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    在您的代码中 MEDIA_ROOTMEDIA_URL 混淆了。

    【讨论】:

    • 不工作 :( 可能添加:
    • @kuba 检查更新的答案。您的设置似乎不正确。
    • @kuba 和另一条评论。模型的字段名称是什么?是file 还是videofile?在你看来不应该是videofile = firstvideo.file吗?
    • 我的模型视频是“文件”,但我的视图名为“视频文件”。
    • 我的意思是如果你在模型中有这个代码file = models.FileField,那么你应该在视图中使用file属性而不是videofile:videofile = firstvideo.file
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2020-11-11
    • 2011-06-24
    • 2019-01-22
    • 2017-01-22
    • 2011-08-15
    相关资源
    最近更新 更多