django - 将默认图像设置为模型中的 CloudinaryField
问题描述
我最近开始使用 Cloudinary 进行媒体存储。
我有一个带有图像和封面图像字段的配置文件模型
无云
在更改为云媒体存储之前,模型如下所示:
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
现在,添加 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
解决方案
Cloudinary 现在支持在请求的图像不存在时提供默认图像。
假设您希望在页面中显示默认图像,我对您是否可以从模型中执行此操作的知识有限,您可以在呈现该页面的视图中实现此功能,例如
CloudinaryImage("if_set_image.jpg").image(transformation=[
'default_image': "default_image.png"
])
鉴于您需要使用 cloudinary,您还可以考虑保留 django 提供的默认 ImageField(因此可以轻松设置默认选项)并用于cloudinary.uploader.upload("my_image.jpg")
在您的视图中将图像上传到 cloudinary。
推荐阅读
- r - R readr col_types 在元数据文件中指定,特别是使用自定义日期格式
- c# - 尝试在 switch case 中比较两个整数时 C#“期望一个常量值”
- c# - 使用 windbg 调试 exe(客户端)时出错
- python - Python中PyQt5类之间的调用函数
- c# - 通过控制台应用程序捕获两个用户输入输入之间的时间
- post - 新帖子中的预定义文本
- android - Qt Android 目录
- python - Python 只读取最后一行,但我想要所有的,即使是同名
- database-design - 在 Cassandra 中,如何根据列选择行并稍后更新该列
- php - 负前瞻与预期不匹配