【问题标题】:Is there such thing as a VideoField in Django?Django中是否有VideoField之类的东西?
【发布时间】:2019-10-07 01:53:09
【问题描述】:

所以我最近一直在创建一个网站,我想要一种方法让人们上传视频并让我显示它们,就像我使用 ImageField 一样。但是我发现VideoField 不是一个东西。到目前为止,我已经使用了FileField,它正在上传到正确的文件夹,但是我不知道如何像ImageField 那样显示该视频。

我想使用专门为视频文件制作的东西,但到目前为止我还没有在网上找到任何关于 VideoFiles 的内容。

这是我的模型。

class Post(models.Model):
    # ... other things here
    video_file = models.FileField(upload_to='post_files',blank=True,null=True)

所以我的问题是:Django 中有VideoFile 吗?

【问题讨论】:

  • Django没有内置这样的字段,你想从这样的字段中得到什么?
  • 我希望用户能够上传视频,并让我在帖子中显示它们。例如,如果这是我的模型中的一行` image = models.ImageField(upload_to='post_files',blank=True,null=True) ` 我可以使用{% post.image.url %} 或其他任何东西,它会显示图像。但是我想为视频做这个。
  • 没有什么能阻止您为此使用 s FileField。在您的页面上播放视频可以很简单,只需包含一个video 标记,并以文件 url 作为源。

标签: python django django-models django-forms


【解决方案1】:
  1. Django 中没有VideoField
  2. 您当然可以使用FileField

在您的模板中添加以下内容:

<video width="500px" height="500px" controls>
     <source src="{{ post.video_file.url }}" type="video/mp4">
</video>

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    除了 Priyanshu 答案之外,如果您需要在 Django admin 中显示 mp4,您可以使用以下代码:

    class MyVideoAdmin(admin.ModelAdmin):
        list_display = ('id', 'video_tag', 'comment', )
    
        def video_tag(self, obj):
            if obj.video:
                return format_html('<a href="{}">Link to video</a><video height="200px" controls><source src="{}" type="video/mp4"></video>'.format(obj.video.url, obj.video.url))
        video_tag.short_description = 'Video'
    
    admin.site.register(MyVideo, MyVideoAdmin)
    

    【讨论】:

      【解决方案3】:

      我会选择django-embed-video。它适用于想要在他们的项目中播放视频的初学者和中级开发者。

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多