【问题标题】:How can I duplicate an image in cloudinary?如何在 cloudinary 中复制图像?
【发布时间】:2020-05-19 08:04:36
【问题描述】:

我在 Django 中使用 cloudinary,我需要复制一个模型实例,该实例还包含一个 CloudinaryField。我知道如何在 Django 中复制模型实例,但我不知道如何复制图像。

这是我的模型:

class CustomImage(models.Model):
    image = CloudinaryField("image", null=True, blank=True)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now=True, auto_now_add=False)

这是我对该模型实例的复制代码:

image = CustomImage.objects.get(id=1)
image.pk = None
image.save()

问题是两个实例现在都分配了相同的图像,所以如果我删除一个,另一个会被删除。如何正确复制 cloudinary 中的现有图像?

【问题讨论】:

    标签: python django cloudinary


    【解决方案1】:

    我能够弄清楚。上传带有选项overwrite 设置为False 的图像就可以了。另外,我们需要新建一个CloudinaryResource,并将其赋值给CustomImage实例的image字段。

    import cloudinary
    from cloudinary import CloudinaryResource
    
    image = CustomImage.objects.get(id=1)
    image.pk = None
    
    # cloudinary image duplication
    cloudinary_resource = image.image
    cloudinary_url = cloudinary_resource.url
    response = cloudinary.uploader.upload(
        cloudinary_url, options={"overwrite": False}
    )
    public_url = response["public_id"]
    resource_type = response["resource_type"]
    duplicated_image = CloudinaryResource(
        public_id=public_url, resource_type=resource_type
    )
    image.image = duplicated_image
    image.save()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-18
      • 2018-03-15
      • 2023-03-16
      • 2017-02-26
      • 2017-09-15
      • 2018-07-29
      • 2017-06-05
      • 2014-08-09
      相关资源
      最近更新 更多