使用django删除cloudinary上的图像

时间:2015-05-29 01:42:21

标签: django cloudinary

我尝试了一些东西,我似乎找不到解决我的问题的方法,我想检查表单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})

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

假设您的模型看起来像这样;

  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中的一个属性。