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