Django音频,视频和图像上传

时间:2020-05-05 16:23:57

标签: django

我已经尝试解决这个问题了很长时间,请有人帮助我。所以我是新手,我是django,现在正在学习。我制作了一个可以上传文件的应用。我已经在模型中使用了filefield,但是问题是如果我要上传图像文件,我必须使用html中的img标签,如果我要上传视频,则必须使用video标签,并且类似地,对于音频使用音频标签,但问题是如果我上传视频,它将不会显示在img标签中,反之亦然。因此,如何使用户仅上传文件,并像instagram一样自动使用html中的必需标签,您可以上传视频音频图像。如果有人知道什么,请帮助。

1 个答案:

答案 0 :(得分:1)

您可以在模型中创建一个返回文件类型的属性,并可以使用它来识别它是视频,音频还是图像。

类似这样的东西

class YourModel(models.Model):
    file = models.FileField(upload_to='file_path')

    def extension(self):
        name, extension = os.path.splitext(self.file.name)
        return extension

即使你可以做

class YourModel(models.Model):
    file = models.FileField(upload_to='file_path')

    def extension(self):
        name, extension = os.path.splitext(self.file.name)
        if extension in ['mp3', 'wav', ...]:
            return 'audio'
        if extension in ['mp4', 'mpg', 'mpeg', ...]:
            return 'video'
        if extension in ['jpg', 'jpeg', 'png' ....]:
            return 'image'

希望这会对您有所帮助:)