我最近开始使用Cloudinary进行媒体存储。
我有一个包含图像和封面图像字段的Profile模型
在更改为云媒体存储之前,该模型如下所示:
class Profile(models.Model):
user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
# setup without Cloudinary
image = models.ImageField(default='profile_image/default.jpg', upload_to='profile_image', blank=False)
cover_image = models.ImageField(default='cover_image/default.jpg', upload_to='cover_image', blank=False)
它允许我为两个字段设置默认图像。
现在,添加Cloudinary之后,它看起来像这样:
class Profile(models.Model):
user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
# setup with Cloudinary
image = CloudinaryField('image')
cover_image = CloudinaryField('cover_image')
我希望能够为两个字段都设置默认图像。
以下是相关库的版本
Django==2.1.5
cloudinary==1.17.0
django-cloudinary-storage==0.2.3
olefile==0.46
cloudinary-cli==0.3.4
答案 0 :(得分:0)
Cloudinary现在支持在请求的图像不存在时提供默认图像。
假设您要在页面中显示默认图像,我对是否可以从模型中获取图像的了解有限,则可以在呈现该页面的视图中实现此功能例如
CloudinaryImage("if_set_image.jpg").image(transformation=[
'default_image': "default_image.png"
])
有关更多信息,请阅读此article或documentation
鉴于您需要使用cloudinary,还可以考虑保留django提供的默认ImageField(因此可以轻松设置默认选项),并使用cloudinary.uploader.upload("my_image.jpg")
将图像上传到视图中的cloudinary。