【问题标题】:delete image on cloudinary using django使用 django 删除 cloudinary 上的图像
【发布时间】:2015-08-11 17:50:13
【问题描述】:

我尝试了一些方法,但似乎找不到解决问题的方法,我想检查表单 image1 的字段中是否有新图像并删除 cloudinary 中的旧图像,但它没有使用我拥有的代码删除任何内容,我在 django shell 中尝试过,一切正常。这是代码:

def edit_job(request, slug):
    job = get_object_or_404(Job, user=request.user, slug=slug)
    if request.method == 'POST':
        form = AddJob(request.POST, request.FILES, instance=job)
        if form.is_valid():
            if form['image1']:
                cloudinary.uploader.destroy(job.image1, invalidate = True)
            form.save()
            return redirect('view_job', slug=job.slug)
    else:
        form = AddJob(instance=job)
    return render(request, 'jobs/edit_job.html', {'form': form, 'job': job})

【问题讨论】:

    标签: django cloudinary


    【解决方案1】:

    尝试使用public_id 属性从CloudinaryResource 对象中提取资源的public_id

    【讨论】:

      【解决方案2】:

      假设您的模型如下所示:

        from cloudinary.models import CloudinaryField
        class CustomModel(models.Model):
             image = CloudinaryField('image',blank=True,null=True)
             user = models.OneToOneField(User,blank=True, null=True, unique=True, verbose_name=_('User'))
      

      在视图中:

      import cloudinary.uploader
      import cloudinary
      import CustomModel.models
      
      custommodel= CustomModel.objects.get(user=request.user)
      cloudinary.uploader.destroy(custommodel.image.public_id,invalidate=True)
      

      您可能无法删除照片,因为您没有将 public_id 传递给 Cloudinary。 public_id 是 CloudinaryField 中的一个属性。

      【讨论】:

        猜你喜欢
        • 2020-12-18
        • 2020-05-05
        • 2020-03-02
        • 2020-03-02
        • 2019-01-30
        • 2017-08-18
        • 2020-11-05
        • 2013-11-01
        • 2016-06-17
        相关资源
        最近更新 更多